Created attachment 273336 [details] guard call to ieee80211_ratectl_rate linuxkpi_ieee80211_tx_status_ext() guards its rate-control work with "ni != NULL", but then dereferences one level deeper: ieee80211_ratectl_rate(ni->ni_vap->iv_bss, NULL, 0); A tx completion can be delivered from the driver's NAPI/rx-completion thread after the vap has been destroyed, once net80211 has driven it to INIT and cleared iv_bss, while frames were still in flight. The node itself is still referenced and valid, so the existing check passes and we fault on the NULL bss node: panic: page fault ieee80211_ratectl_rate (ni=0x0) linuxkpi_ieee80211_tx_status_ext ath10k_txrx_tx_unref / ath10k_htt_t2h_msg_handler ath10k_pci_napi_poll / lkpi_napi_task Confirmed in the dump: ni and ni->ni_vap valid, iv_bss NULL, and iv_state already IEEE80211_S_INIT.
Created attachment 273385 [details] guard call to ieee80211_ratectl_rate ^Triage: convert to git patch (now preferred).