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?