Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp3913963imm; Mon, 8 Oct 2018 11:36:00 -0700 (PDT) X-Google-Smtp-Source: ACcGV610X/zdRQU1cZQnUz983Bopg+yf/tuNxjaQDzIW6qvt2chVxZY66sre2xw4wRs84MkpejCz X-Received: by 2002:a63:66c3:: with SMTP id a186-v6mr22205054pgc.330.1539023760499; Mon, 08 Oct 2018 11:36:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539023760; cv=none; d=google.com; s=arc-20160816; b=CpsDfecrBJY4OcxwpG0o8ek/mv3s7g1yVXq3V04u3CBWhmWQHsWvmdzUS7CDYIFGUi Pl7UBVt3mY+fgkQD7tSCfseStACpaRemQzr3ozDPDVAouBFzKsDFKa2bXk83qJxDl+ZP 5COqLjr32JLbtzdfdpYT5EP0yPuQJ3S+wENFkvTgzXn3gnNC0b9zZ1Vw9ec49VXyTaVK KrhsgAMldli2Uu3nv/Eto8wJhcQnoOI5xNmr+2494HtlIvK6KuejDUVhM3wPIfGIkjGp ZK9ciYliBAV4kx1Vpyvm1M12CA7WW7drVEWDcImy6yXB6+SzJ1qs0FldLvKCjShIB38+ /eAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=QyXpcHxX9KuKz0FONpmZiELM0XL/tfW2mLxRl9reHd4=; b=R0/f/M4d8CbqrPlZtiaZidDUkpJKUQlc0M5RyDgwKcmmwkzzj3hTylpI5BFD2yDt02 jTmIenObMKO296iFZNQTATIjxjaIyKOPfTcwh3dxMg+O1lBfAfR1ZktITn06S1BQH+c7 qMxXpdEcpmzRrlPmb9CFiHo7xMAaK1hhaTR2v9ZyoEuhUWn+n536be5fsuTPY7QSKc4+ Q80ZSUuDYBZXbdeTSDuQMe56nfsNvA00CZ4Ytltzt/ybb8YcwyLtOBECtl6LDMvtamGT kRdyS4rZ/oVS3k/pq9dc120ePivxkg0u85Oqdk2l7tTFrziC9ZDQpFr0K6OGJ3uHMvwD S1GA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fnkZuUEx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y125-v6si16978544pgb.14.2018.10.08.11.35.45; Mon, 08 Oct 2018 11:36:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fnkZuUEx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727474AbeJIBq7 (ORCPT + 99 others); Mon, 8 Oct 2018 21:46:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:57544 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727376AbeJIBq7 (ORCPT ); Mon, 8 Oct 2018 21:46:59 -0400 Received: from localhost (ip-213-127-77-176.ip.prioritytelecom.net [213.127.77.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 55DE120C0A; Mon, 8 Oct 2018 18:33:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539023636; bh=FzGdv/j4aM0sDQSLdOIcq5jFUCOB8TPHvj56oRRkMoM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fnkZuUEx0L6Mk1FjyhLDHKw3cZT/turHfXjoTpiZcLmc10QSxolLrBcOjzGlLSEJ5 2LjzOeeOlLZSZ9MUW3LRvoZw3Lzw3byTexmrlh7DvwH7zmn/m4VvDVrEehz30QMpL6 JbQELryE9LVs2AXuCV47S4XmOxaQerwhwaef5jBY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ben Greear , Kalle Valo , Sasha Levin Subject: [PATCH 4.4 032/113] ath10k: protect ath10k_htt_rx_ring_free with rx_ring.lock Date: Mon, 8 Oct 2018 20:30:33 +0200 Message-Id: <20181008175532.406515701@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181008175530.864641368@linuxfoundation.org> References: <20181008175530.864641368@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Ben Greear [ Upstream commit 168f75f11fe68455e0d058a818ebccfc329d8685 ] While debugging driver crashes related to a buggy firmware crashing under load, I noticed that ath10k_htt_rx_ring_free could be called without being under lock. I'm not sure if this is the root cause of the crash or not, but it seems prudent to protect it. Originally tested on 4.16+ kernel with ath10k-ct 10.4 firmware running on 9984 NIC. Signed-off-by: Ben Greear Signed-off-by: Kalle Valo Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/wireless/ath/ath10k/htt_rx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c @@ -212,11 +212,12 @@ int ath10k_htt_rx_ring_refill(struct ath spin_lock_bh(&htt->rx_ring.lock); ret = ath10k_htt_rx_ring_fill_n(htt, (htt->rx_ring.fill_level - htt->rx_ring.fill_cnt)); - spin_unlock_bh(&htt->rx_ring.lock); if (ret) ath10k_htt_rx_ring_free(htt); + spin_unlock_bh(&htt->rx_ring.lock); + return ret; } @@ -230,7 +231,9 @@ void ath10k_htt_rx_free(struct ath10k_ht skb_queue_purge(&htt->rx_compl_q); skb_queue_purge(&htt->rx_in_ord_compl_q); + spin_lock_bh(&htt->rx_ring.lock); ath10k_htt_rx_ring_free(htt); + spin_unlock_bh(&htt->rx_ring.lock); dma_free_coherent(htt->ar->dev, (htt->rx_ring.size *