Ramya Gnanasekar <quic_rgnanase@xxxxxxxxxxx> wrote: > 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> Patch applied to ath-next branch of ath.git, thanks. 1a0c640ce1cd wifi: ath12k: Skip Rx TID cleanup for self peer -- https://patchwork.kernel.org/project/linux-wireless/patch/20240905042851.2282306-1-quic_rgnanase@xxxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches https://docs.kernel.org/process/submitting-patches.html