wifi: ath12k: fix leaking michael_mic for non-primary links
authorBaochen Qiang <quic_bqiang@quicinc.com>
Fri, 6 Dec 2024 05:45:52 +0000 (13:45 +0800)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Wed, 11 Dec 2024 17:18:54 +0000 (09:18 -0800)
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 <quic_bqiang@quicinc.com>
Acked-by: Kalle Valo <kvalo@kernel.org>
Acked-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Link: https://patch.msgid.link/20241206054552.177424-1-quic_bqiang@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/dp_rx.c

index b24d1de4aabb9fc50be62f278e413042b85064a3..f8e79eff20894cfa81be5a1e23db7b51238608bb 100644 (file)
@@ -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;
        }