> On 2015-01-16 09:00, Rico Derrer wrote: >> Hi Felix >> >> Felix Fietkau wrote: >>> diff --git a/drivers/net/wireless/ath/ath9k/main.c >>> b/drivers/net/wireless/ath/ath9k/main.c >>> index 9a72640..62b0bf4 100644 >>> --- a/drivers/net/wireless/ath/ath9k/main.c >>> +++ b/drivers/net/wireless/ath/ath9k/main.c >>> @@ -285,6 +285,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct >>> ath9k_channel *hchan) >>> >>> __ath_cancel_work(sc); >>> >>> + disable_irq(sc->irq); >>> tasklet_disable(&sc->intr_tq); >>> tasklet_disable(&sc->bcon_tasklet); >>> spin_lock_bh(&sc->sc_pcu_lock); >>> @@ -331,6 +332,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct >>> ath9k_channel *hchan) >>> r = -EIO; >>> >>> out: >>> + enable_irq(sc->irq); >>> spin_unlock_bh(&sc->sc_pcu_lock); >>> tasklet_enable(&sc->bcon_tasklet); >>> tasklet_enable(&sc->intr_tq); >> >> This part completely blocks the system on a AR9350. Loading the >> module works but configuring it hangs the system until watchdog restarts it. > What kernel/software are you running on there? When I committed this > patch to OpenWrt, it uncovered IRQ handling bugs in MIPS kernel code > (both generic and in the ath79 platform code). > > You can find the fixes that I've made here: > http://git.openwrt.org/?p=openwrt.git;a=blob_plain;f=target/linux/generic/patches-3.14/130-mips_cpu_irq_disable.patch > http://git.openwrt.org/?p=openwrt.git;a=blob_plain;f=target/linux/ar71xx/patches-3.14/736-MIPS-ath79-fix-chained-irq-disable.patch > > I've already submitted the first one to linux-mips. > > - Felix Thank you, these patches fixed the problem. Rico -- 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