[PATCH ath-next 1/2] wifi: ath12k: Reorder and relocate the release of resources in ath12k_core_deinit()

Raj Kumar Bhagat quic_rajkbhag at quicinc.com
Tue Apr 29 05:41:00 PDT 2025


On 4/23/2025 11:26 AM, Yingying Tang wrote:
> Ath12k panic notifier is registered in driver loading process. But it is not
> unregistered if ATH12K_FLAG_QMI_FAIL is set(e.g. load BDF failed) and unload
> driver. It causes a dirty node in panic notifier list since ath12k panic
> notifier is not unregistered from list but the buffer of this node is freed
> in driver unloading process. If load driver again there will be a page fault
> error due to this dirty node in panic notifier list.
> 
> This issue is caused by asymmetry between ath12k_core_init() and
> ath12k_core_deinit(). Reorder and relocate the release of resources in
> ath12k_core_deinit() to avoid this asymmetry issue.
> 
> Call Trace:
> <TASK>
> ? show_regs+0x67/0x70
> ? __die_body+0x20/0x70
> ? __die+0x2b/0x40
> ? page_fault_oops+0x15d/0x500
> ? search_bpf_extables+0x63/0x90
> ? notifier_chain_register+0x21/0xe0
> ? search_exception_tables+0x5f/0x70
> ? kernelmode_fixup_or_oops.isra.0+0x61/0x80
> ? __bad_area_nosemaphore+0x179/0x240
> ? bad_area_nosemaphore+0x16/0x20
> ? do_user_addr_fault+0x312/0x7f0
> ? prb_read_valid+0x1c/0x30
> ? exc_page_fault+0x78/0x180
> ? asm_exc_page_fault+0x27/0x30
> ? notifier_chain_register+0x21/0xe0
> ? notifier_chain_register+0x55/0xe0
> atomic_notifier_chain_register+0x2c/0x50
> ath12k_core_init+0x7e/0x110 [ath12k]
> ath12k_pci_probe+0xaba/0xba0 [ath12k]
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0-02903-QCAHKSWPL_SILICONZ-1
> Tested-on: QCN8750 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

I guess this Tested-on tag should be
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

Not sure if this can be taken care while merging in pending branch? or re-spin is
required?



More information about the ath12k mailing list