Felix Fietkau wrote: > + sc->p2p_ps_timer = ath_gen_timer_alloc(sc->sc_ah, ath9k_p2p_ps_timer, > + NULL, sc, AR_FIRST_NDP_TIMER); > + > ath9k_cmn_init_crypto(sc->sc_ah); > ath9k_init_misc(sc); > ath_fill_led_pin(sc); > @@ -1067,6 +1070,9 @@ static void ath9k_deinit_softc(struct ath_softc *sc) > { > int i = 0; > > + if (sc->p2p_ps_timer) > + ath_gen_timer_free(sc->sc_ah, sc->p2p_ps_timer); > + Why do this in the global init/deinit routines ? Wouldn't the add/remove interface callbacks be a better place for this (based on vif->p2p), since this timer is needed only for p2p interfaces ? > + if (sc->ps_flags & PS_BEACON_SYNC) > + return; I think sc_pm_lock is required to use sc->ps_flags. Sujith -- 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