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 -- 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