lkml.org 
[lkml]   [2022]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 028/277] ath11k: fix kernel panic during unload/load ath11k modules
    Date
    From: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>

    [ Upstream commit 22b59cb965f79ee1accf83172441c9ca0ecb632a ]

    Call netif_napi_del() from ath11k_ahb_free_ext_irq() to fix
    the following kernel panic when unload/load ath11k modules
    for few iterations.

    [ 971.201365] Unable to handle kernel paging request at virtual address 6d97a208
    [ 971.204227] pgd = 594c2919
    [ 971.211478] [6d97a208] *pgd=00000000
    [ 971.214120] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
    [ 971.412024] CPU: 2 PID: 4435 Comm: insmod Not tainted 5.4.89 #0
    [ 971.434256] Hardware name: Generic DT based system
    [ 971.440165] PC is at napi_by_id+0x10/0x40
    [ 971.445019] LR is at netif_napi_add+0x160/0x1dc

    [ 971.743127] (napi_by_id) from [<807d89a0>] (netif_napi_add+0x160/0x1dc)
    [ 971.751295] (netif_napi_add) from [<7f1209ac>] (ath11k_ahb_config_irq+0xf8/0x414 [ath11k_ahb])
    [ 971.759164] (ath11k_ahb_config_irq [ath11k_ahb]) from [<7f12135c>] (ath11k_ahb_probe+0x40c/0x51c [ath11k_ahb])
    [ 971.768567] (ath11k_ahb_probe [ath11k_ahb]) from [<80666864>] (platform_drv_probe+0x48/0x94)
    [ 971.779670] (platform_drv_probe) from [<80664718>] (really_probe+0x1c8/0x450)
    [ 971.789389] (really_probe) from [<80664cc4>] (driver_probe_device+0x15c/0x1b8)
    [ 971.797547] (driver_probe_device) from [<80664f60>] (device_driver_attach+0x44/0x60)
    [ 971.805795] (device_driver_attach) from [<806650a0>] (__driver_attach+0x124/0x140)
    [ 971.814822] (__driver_attach) from [<80662adc>] (bus_for_each_dev+0x58/0xa4)
    [ 971.823328] (bus_for_each_dev) from [<80663a2c>] (bus_add_driver+0xf0/0x1e8)
    [ 971.831662] (bus_add_driver) from [<806658a4>] (driver_register+0xa8/0xf0)
    [ 971.839822] (driver_register) from [<8030269c>] (do_one_initcall+0x78/0x1ac)
    [ 971.847638] (do_one_initcall) from [<80392524>] (do_init_module+0x54/0x200)
    [ 971.855968] (do_init_module) from [<803945b0>] (load_module+0x1e30/0x1ffc)
    [ 971.864126] (load_module) from [<803948b0>] (sys_init_module+0x134/0x17c)
    [ 971.871852] (sys_init_module) from [<80301000>] (ret_fast_syscall+0x0/0x50)

    Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.6.0.1-00760-QCAHKSWPL_SILICONZ-1

    Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/1642583973-21599-1-git-send-email-quic_vnaralas@quicinc.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/ath/ath11k/ahb.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c
    index 3fb0aa000825..24bd0520926b 100644
    --- a/drivers/net/wireless/ath/ath11k/ahb.c
    +++ b/drivers/net/wireless/ath/ath11k/ahb.c
    @@ -391,6 +391,8 @@ static void ath11k_ahb_free_ext_irq(struct ath11k_base *ab)

    for (j = 0; j < irq_grp->num_irq; j++)
    free_irq(ab->irq_num[irq_grp->irqs[j]], irq_grp);
    +
    + netif_napi_del(&irq_grp->napi);
    }
    }

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-04-12 09:06    [W:2.339 / U:1.792 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site