• Michal Kazior's avatar
    ath10k: kill tasklets after free_irq · 21396271
    Michal Kazior authored
    Commit 5c771e74
    introduced a regression. On some systems spurious
    interrupts could schedule a tasklet while tearing
    down leading to, e.g.:
    
     BUG: unable to handle kernel paging request at fe589030
     IP: [<c1316fb0>] ioread32+0x30/0x40
     ...
     Call Trace:
      [<fe576c1b>] ath10k_pci_tasklet+0x1b/0x60 [ath10k_pci]
      [<c1053fbe>] tasklet_action+0x9e/0xb0
      [<c10534f1>] __do_softirq+0xf1/0x3f0
      [<c1053400>] ? ftrace_raw_event_irq_handler_entry+0xa0/0xa0
      [<c1004999>] do_softirq_own_stack+0x29/0x40
      <IRQ>
      [<c1053a76>] irq_exit+0x86/0xb0
     ...
      [<c132d522>] do_pci_disable_device+0x52/0x60
      [<c132d57f>] pci_disable_device+0x4f/0xb0
      [<c132a961>] ? __pci_set_master+0x51/0x80
      [<fe5740b3>] ath10k_pci_release+0x33/0x40 [ath10k_pci]
      [<fe575d4b>] ath10k_pci_remove+0x7b/0x90 [ath10k_pci]
    Reported-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    Tested-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    21396271
pci.c 63.7 KB