• Anilkumar Kolli's avatar
    ath10k: fix kernel panic, move arvifs list head init before htt init · dcd9fc92
    Anilkumar Kolli authored
    commit 4ad24a9d upstream.
    
    It is observed that while loading and unloading ath10k modules
    in an infinite loop, before ath10k_core_start() completion HTT
    rx frames are received, while processing these frames,
    dereferencing the arvifs list code is getting hit before
    initilizing the arvifs list, causing a kernel panic.
    
    This patch initilizes the arvifs list before initilizing htt.
    
    Fixes the below issue:
     [<bf88b058>] (ath10k_htt_rx_pktlog_completion_handler+0x278/0xd08 [ath10k_core])
     [<bf88b058>] (ath10k_htt_rx_pktlog_completion_handler [ath10k_core])
     [<bf88c0dc>] (ath10k_htt_txrx_compl_task+0x5f4/0xeb0 [ath10k_core])
     [<bf88c0dc>] (ath10k_htt_txrx_compl_task [ath10k_core])
     [<c0234100>] (tasklet_action+0x8c/0xec)
     [<c0234100>] (tasklet_action)
     [<c02337c0>] (__do_softirq+0xf8/0x228)
     [<c02337c0>] (__do_softirq)  [<c0233920>] (run_ksoftirqd+0x30/0x90)
     Code: e5954ad8 e2899008 e1540009 0a00000d (e5943008)
     ---[ end trace 71de5c2e011dbf56 ]---
     Kernel panic - not syncing: Fatal exception in interrupt
    
    Fixes: 500ff9f9 ("ath10k: implement chanctx API")
    Signed-off-by: default avatarAnilkumar Kolli <akolli@qti.qualcomm.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    dcd9fc92
core.c 50.3 KB