On Fri, Oct 5, 2018 at 3:33 AM Kalle Valo <kvalo@xxxxxxxxxxxxxx> wrote: > > Tony Lindgren <tony@xxxxxxxxxxx> wrote: > > > We do not currently clear wl->elp_compl on ELP timeout and we have bogus > > lingering pointer that wlcore_irq then will try to access after recovery > > is done: > > > > BUG: spinlock bad magic on CPU#1, irq/255-wl12xx/580 > > ... > > (spin_dump) from [<c01b9344>] (do_raw_spin_lock+0xc8/0x124) > > (do_raw_spin_lock) from [<c09b3970>] (_raw_spin_lock_irqsave+0x68/0x74) > > (_raw_spin_lock_irqsave) from [<c01a02f0>] (complete+0x24/0x58) > > (complete) from [<bf572610>] (wlcore_irq+0x48/0x17c [wlcore]) > > (wlcore_irq [wlcore]) from [<c01c5efc>] (irq_thread_fn+0x2c/0x64) > > (irq_thread_fn) from [<c01c623c>] (irq_thread+0x148/0x290) > > (irq_thread) from [<c016b4b0>] (kthread+0x160/0x17c) > > (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x20) > > ... > > > > After that the system will hang. Let's fix this by adding a flag for > > recovery and moving the recovery work call to to the error handling > > section. > > > > And we want to set WL1271_FLAG_INTENDED_FW_RECOVERY and actually clear > > it too in wl1271_recovery_work() and just downgrade the error to a > > warning to prevent overly verbose output. > > Do we know how far back this bug goes and which versions need this patch applied to it? I have seen something similar on 4.19, but I haven't tried this patch to fix it. It wasn't clear to me if this is linux-next or 4.19 or something different. thanks adam > > Cc: Eyal Reizer <eyalr@xxxxxx> > > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > > Patch applied to wireless-drivers-next.git, thanks. > > 4e651bad8489 wlcore: Fix BUG with clear completion on timeout > > -- > https://patchwork.kernel.org/patch/10622767/ > > https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches >