On 28 August 2014 08:58, Kalle Valo <kv...@qca.qualcomm.com> wrote: > Hi, > > while I was testing testmode patches I noticed ath10k was crashing > during rmmod. Further investigation showed that I actually see the crash > also without testmode patches (using commit 346c16654356) . I just need > to reload ath10k modules in sequence, usually 10-15 times is enough to > reprocuce the crash. > > I also tested with "ath10k: re-enable interrupts properly in hw > recovery" but it doesn't seem to make any difference. > [...] > [ 123.547470] BUG: unable to handle kernel paging request at fe589030 > [ 123.547745] IP: [<c1316fb0>] ioread32+0x30/0x40 > [ 123.547924] *pde = 2d670067 *pte = 00000000 > [ 123.548170] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC > [ 123.548500] Modules linked in: ath10k_pci(-) ath10k_core ath mac80211 > cfg80211 [last unloaded: cfg80211] > [ 123.549121] CPU: 0 PID: 3631 Comm: rmmod Not tainted 3.16.0-wl-ath+ #570 > [ 123.549261] Hardware name: Hewlett-Packard HP ProBook 6540b/1722, BIOS > 68CDD Ver. F.04 01/27/2010 > [ 123.549409] task: ef762d40 ti: ed4a6000 task.ti: ed4a6000 > [ 123.549522] EIP: 0060:[<c1316fb0>] EFLAGS: 00010292 CPU: 0 > [ 123.549640] EIP is at ioread32+0x30/0x40 > [ 123.549749] EAX: fe589030 EBX: ecadd7e0 ECX: 00000002 EDX: ef7632e0 > [ 123.549871] ESI: 00000000 EDI: ecadf208 EBP: f441bf84 ESP: f441bf84 > [ 123.549994] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > [ 123.550110] CR0: 8005003b CR2: fe589030 CR3: 2c7c3000 CR4: 000007d0 > [ 123.550232] Stack: > [ 123.550321] f441bf90 fe576c1b ecadf204 f441bfa4 c1053fbe ef762d40 > 00000006 c1b35218 > [ 123.551049] f441bff8 c10534f1 00000000 00000000 00000000 00000000 > 00000000 00000000 > [ 123.551755] 00406100 01000000 ed4a7fec fffd4e33 0000000a 00000000 > 00000005 00000030 > [ 123.552499] Call Trace: > [ 123.554957] [<fe576c1b>] ath10k_pci_tasklet+0x1b/0x60 [ath10k_pci] > [ 123.557436] [<c1053fbe>] tasklet_action+0x9e/0xb0 > [ 123.559874] [<c10534f1>] __do_softirq+0xf1/0x3f0 > [ 123.562277] [<c1053400>] ? ftrace_raw_event_irq_handler_entry+0xa0/0xa0 > [ 123.564720] [<c1004999>] do_softirq_own_stack+0x29/0x40 > [ 123.567096] <IRQ> [...] > [ 123.643338] [<fe5740b3>] ath10k_pci_release+0x33/0x40 [ath10k_pci] > [ 123.645289] [<fe575d4b>] ath10k_pci_remove+0x7b/0x90 [ath10k_pci] > [ 123.647174] [<c132f5b8>] pci_device_remove+0x28/0x50 > [ 123.649056] [<c146cbee>] __device_release_driver+0x4e/0xb0
I should've expected spurious interrupts in pci_remove().. Does the following fix the problem? diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c index 144eb8a3..a03d885 100644 --- a/drivers/net/wireless/ath/ath10k/pci.c +++ b/drivers/net/wireless/ath/ath10k/pci.c @@ -2598,6 +2598,7 @@ static void ath10k_pci_remove(struct pci_dev *pdev) ath10k_core_unregister(ar); ath10k_pci_free_irq(ar); + ath10k_pci_kill_tasklet(ar); ath10k_pci_deinit_irq(ar); ath10k_pci_ce_deinit(ar); ath10k_pci_free_ce(ar); MichaĆ _______________________________________________ ath10k mailing list ath10k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath10k