From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CAB28EB64DD for ; Sun, 9 Jul 2023 15:13:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6fooPpojDZF2Mcp+dbvs9Vel1tBdlsPnrOt7YsoKPJg=; b=ry1fFU/ktjIGBM aN+Eo8ZbX2C+h9RJG4AxNs4uSHWvjkA8/kgrrJUIG3xEsQ88IDjOVKL54YV5HhVLjjE15jiHjQkJo xDW1hcNd5T5IxkeFeHbYR5hsIFt7R8F4KkdR1421Xu68IYiydNlc56450obm+NUKXm0kHrJuEtMa8 rBR7Lzk71fALwEhGR74ut+kJ9eHDXkN0SF/g04fSCV62GIm7Vh2gJPZc50Qnkzy0Pj7uvdQDIXw1E yX8jSbCSEDYe5ErWFawcnH3kFm1C6Gb3iMgUs6w+ky9wcAX9vV4xtcrwffuXvO72Qdt8Uv1VMfCgI uf4oAS1ISjuB2BXiFgpw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qIW6J-009J4r-1U; Sun, 09 Jul 2023 15:13:27 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qIW6G-009J39-00 for ath11k@lists.infradead.org; Sun, 09 Jul 2023 15:13:25 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6919160B83; Sun, 9 Jul 2023 15:13:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4BD7C433CA; Sun, 9 Jul 2023 15:13:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1688915602; bh=ScanU+BhgmWJdTldgcCupwA3PbZWDh9RwbCKDblNdPE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BLzeRVvZo6QFJh6BlKpVSQPuGjEaf5DXU1qi8XuaCN9EVFwxlo79ibH88ycMxaxfj 3tmcF58JJotepSWpN9yzkl0ViZODn7ZFOAd+Aghn7tRr68t9+R0iJ2q66rDjEj+CR2 B2uQ7o3WEiXSg/7otmOs2tDpm4a3KeTQaXxryWT3zEP5qlEFz8QdALmYuJog7MZIN3 BF+iDZeTWSkelOc0B8UmLG8O2WvCcGqGnxj3kVnkLKOen17toJ4Xk51Qof67d5lRYG c9k9IF97m8UhHkfgMD2lp2qakTFQRARs4YCQge7++qYRqWCN0NW7I3coc7sVuZgScG fUAwMrh1pshTw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: P Praneesh , Aditya Kumar Singh , Kalle Valo , Sasha Levin , kvalo@kernel.org, ath11k@lists.infradead.org, linux-wireless@vger.kernel.org Subject: [PATCH AUTOSEL 6.4 16/26] wifi: ath11k: fix memory leak in WMI firmware stats Date: Sun, 9 Jul 2023 11:12:45 -0400 Message-Id: <20230709151255.512931-16-sashal@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230709151255.512931-1-sashal@kernel.org> References: <20230709151255.512931-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.4.2 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230709_081324_074215_D021F65C X-CRM114-Status: GOOD ( 11.33 ) X-BeenThere: ath11k@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "ath11k" Errors-To: ath11k-bounces+ath11k=archiver.kernel.org@lists.infradead.org From: P Praneesh [ Upstream commit 6aafa1c2d3e3fea2ebe84c018003f2a91722e607 ] Memory allocated for firmware pdev, vdev and beacon statistics are not released during rmmod. Fix it by calling ath11k_fw_stats_free() function before hardware unregister. While at it, avoid calling ath11k_fw_stats_free() while processing the firmware stats received in the WMI event because the local list is getting spliced and reinitialised and hence there are no elements in the list after splicing. Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Signed-off-by: P Praneesh Signed-off-by: Aditya Kumar Singh Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20230606091128.14202-1-quic_adisi@quicinc.com Signed-off-by: Sasha Levin --- drivers/net/wireless/ath/ath11k/mac.c | 1 + drivers/net/wireless/ath/ath11k/wmi.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c index 05920ad413c55..01ff197b017f7 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -9468,6 +9468,7 @@ void ath11k_mac_destroy(struct ath11k_base *ab) if (!ar) continue; + ath11k_fw_stats_free(&ar->fw_stats); ieee80211_free_hw(ar->hw); pdev->ar = NULL; } diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c index d0b59bc2905a9..42d9b29623a47 100644 --- a/drivers/net/wireless/ath/ath11k/wmi.c +++ b/drivers/net/wireless/ath/ath11k/wmi.c @@ -8103,6 +8103,11 @@ static void ath11k_update_stats_event(struct ath11k_base *ab, struct sk_buff *sk rcu_read_unlock(); spin_unlock_bh(&ar->data_lock); + /* Since the stats's pdev, vdev and beacon list are spliced and reinitialised + * at this point, no need to free the individual list. + */ + return; + free: ath11k_fw_stats_free(&stats); } -- 2.39.2 -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k