Patch "wifi: ath12k: Skip Rx TID cleanup for self peer" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: ath12k: Skip Rx TID cleanup for self peer

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-ath12k-skip-rx-tid-cleanup-for-self-peer.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit b6ad4af6b795ccc397cb647a4fa407f224657871
Author: Ramya Gnanasekar <quic_rgnanase@xxxxxxxxxxx>
Date:   Thu Sep 5 09:58:51 2024 +0530

    wifi: ath12k: Skip Rx TID cleanup for self peer
    
    [ Upstream commit 1a0c640ce1cdcde3eb131a0c1e70ca1ed7cf27cb ]
    
    During peer create, dp setup for the peer is done where Rx TID is
    updated for all the TIDs. Peer object for self peer will not go through
    dp setup.
    
    When core halts, dp cleanup is done for all the peers. While cleanup,
    rx_tid::ab is accessed which causes below stack trace for self peer.
    
    WARNING: CPU: 6 PID: 12297 at drivers/net/wireless/ath/ath12k/dp_rx.c:851
    Call Trace:
    __warn+0x7b/0x1a0
    ath12k_dp_rx_frags_cleanup+0xd2/0xe0 [ath12k]
    report_bug+0x10b/0x200
    handle_bug+0x3f/0x70
    exc_invalid_op+0x13/0x60
    asm_exc_invalid_op+0x16/0x20
    ath12k_dp_rx_frags_cleanup+0xd2/0xe0 [ath12k]
    ath12k_dp_rx_frags_cleanup+0xca/0xe0 [ath12k]
    ath12k_dp_rx_peer_tid_cleanup+0x39/0xa0 [ath12k]
    ath12k_mac_peer_cleanup_all+0x61/0x100 [ath12k]
    ath12k_core_halt+0x3b/0x100 [ath12k]
    ath12k_core_reset+0x494/0x4c0 [ath12k]
    
    sta object in peer will be updated when remote peer is created. Hence
    use peer::sta to detect the self peer and skip the cleanup.
    
    Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
    Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
    
    Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
    Signed-off-by: Ramya Gnanasekar <quic_rgnanase@xxxxxxxxxxx>
    Acked-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>
    Signed-off-by: Kalle Valo <quic_kvalo@xxxxxxxxxxx>
    Link: https://patch.msgid.link/20240905042851.2282306-1-quic_rgnanase@xxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index 4bb30e4037287..f90191a290c26 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -775,7 +775,10 @@ void ath12k_mac_peer_cleanup_all(struct ath12k *ar)
 
 	spin_lock_bh(&ab->base_lock);
 	list_for_each_entry_safe(peer, tmp, &ab->peers, list) {
-		ath12k_dp_rx_peer_tid_cleanup(ar, peer);
+		/* Skip Rx TID cleanup for self peer */
+		if (peer->sta)
+			ath12k_dp_rx_peer_tid_cleanup(ar, peer);
+
 		list_del(&peer->list);
 		kfree(peer);
 	}




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux