On Mon, Jun 11, 2012 at 11:10:20PM +0530, Rajkumar Manoharan wrote: > On Mon, Jun 11, 2012 at 06:46:00PM +0530, Sujith Manoharan wrote: > > Rajkumar Manoharan wrote: > > > As btcoex scheme updation might sleep, remove the function call > > > from tasklet context and queue it up as a separate work. > > > > > > Signed-off-by: Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx> > > > --- > > > --- a/drivers/net/wireless/ath/ath9k/main.c > > > +++ b/drivers/net/wireless/ath/ath9k/main.c > > > @@ -188,6 +188,9 @@ static bool ath_prepare_reset(struct ath_softc *sc, bool retry_tx, bool flush) > > > > > > ath9k_debug_samp_bb_mac(sc); > > > ath9k_hw_disable_interrupts(ah); > > > +#ifdef CONFIG_ATH9K_BTCOEX_SUPPORT > > > + cancel_work_sync(&sc->mci_work); > > > +#endif > > > > I think this should go inside __ath_cancel_work(), otherwise there is a > > chance that this would not be cleaned up properly when stopping the > > interface or unloading the driver. > > > mci_work is queued up by the ath9k_tasklet that is triggered by interrupt > routine. So it is safer to cancel the mci_work after disabling interrupt. > Does it make sense? > Sujith, you are correct. I'll move it into ath_cancel_work. Rajkumar -- 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