From: Baochen Qiang Date: Fri, 6 Dec 2024 05:45:52 +0000 (+0800) Subject: wifi: ath12k: fix leaking michael_mic for non-primary links X-Git-Tag: block-6.14-20240131~28^2~20^2~2^2~59 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=02f41c8aa643b0d329ee9fa3f3341919bf86b759;p=linux-block.git wifi: ath12k: fix leaking michael_mic for non-primary links In ath12k_dp_rx_peer_frag_setup(), commit ea4192553850 ("wifi: ath12k: add primary link for data path operations") checks whether a link is the primary link, and returns directly if it isn't. In ML scenario where we have non-primary links created, this results in leaking the michael_mic info since it is allocated by default but could never be freed for a non-primary link. Note that we can not move the might-sleep allocation after primary link check since there we are in atomic context (due to spin lock). So keep the default allocation, and then free it before return to fix this issue. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 Fixes: ea4192553850 ("wifi: ath12k: add primary link for data path operations") Signed-off-by: Baochen Qiang Acked-by: Kalle Valo Acked-by: Jeff Johnson Link: https://patch.msgid.link/20241206054552.177424-1-quic_bqiang@quicinc.com Signed-off-by: Jeff Johnson --- diff --git a/drivers/net/wireless/ath/ath12k/dp_rx.c b/drivers/net/wireless/ath/ath12k/dp_rx.c index b24d1de4aabb..f8e79eff2089 100644 --- a/drivers/net/wireless/ath/ath12k/dp_rx.c +++ b/drivers/net/wireless/ath/ath12k/dp_rx.c @@ -2830,6 +2830,7 @@ int ath12k_dp_rx_peer_frag_setup(struct ath12k *ar, const u8 *peer_mac, int vdev if (!peer->primary_link) { spin_unlock_bh(&ab->base_lock); + crypto_free_shash(tfm); return 0; }