On Tue, Jun 15, 2010 at 01:54:43PM +0900, Bruno Randolf wrote: > if we disable interrupts in the chip (ath5k_hw_set_imr) , the hardware does > not generate any interrupts. so no tasklets will get scheduled... The tasklet might already be scheduled on another CPU: cpu0 cpu1 ath5k_reset() ath5k_intr() ath5k_hw_set_imr(0) synchronize_irq() // spins until irq finishes tasklet_schedule(foo) tasklet_disable(foo) // reset here tasklet_action() // spins -- Bob Copeland %% www.bobcopeland.com -- 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