On 29-05-16 13:02, Lukas Wunner wrote: > On Thu, May 26, 2016 at 02:42:46PM +0200, Michael Büsch wrote: >> On Thu, 26 May 2016 14:12:10 +0200 Lukas Wunner <lukas@xxxxxxxxx> wrote: >>> + mmio = early_ioremap(addr, BCM4331_MMIO_SIZE); >>> + if (!mmio) { >>> + pr_err("Cannot iomap Apple AirPort card\n"); >>> + return; >>> + } >>> + pr_info("Resetting Apple AirPort card\n"); >>> + iowrite32(BCMA_RESET_CTL_RESET, >>> + mmio + (1 * BCMA_CORE_SIZE) + BCMA_RESET_CTL); >>> + early_iounmap(mmio, BCM4331_MMIO_SIZE); >> >> Just writing that bit is not the correct reset procedure. >> So it might cause problems depending on how wl does the core reset >> later. >> >> Please try this: >> - wait for BCMA_RESET_ST to be 0 >> - set reset bit >> - flush >> - wait 1us >> - reset reset bit >> - flush >> - wait 10us >> >> See bcma_core_disable() > > It turned out that the lockups are triggered by bec3cfdca36b > ("net: skb_segment() provides list head and tail") in Linux 3.18 > and that Eric Duzamet has kindly provided a fix for broadcom-sta: > https://bugs.gentoo.org/show_bug.cgi?id=523326#c24 > https://523326.bugs.gentoo.org/attachment.cgi?id=393374 Looked at the patch and it provides little context. So before diving in the code would you know if the patched broadcom-sta driver works for kernels before 3.18? Regards, Arend -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html