On Wed, Oct 1, 2008 at 6:34 PM, Elias Oltmanns <eo@xxxxxxxxxxxxxx> wrote: > "Bob Copeland" <me@xxxxxxxxxxxxxxx> wrote: >> On Wed, Oct 1, 2008 at 5:10 PM, Elias Oltmanns <eo@xxxxxxxxxxxxxx> wrote: > Oh, but it is cleaned up by ath5k_stop_hw(). The issue is a different > one here: > > ath5k_init() == ->start() > ath5k_stop_hw() == ->stop() > > Since the mac80211 layer never opened a device, it won't close it > either. Thus, ath5k_stop_hw() does not get called on module unload. By > calling ath5k_init() on resume, the driver has effectively started the > device when it was not supposed to do so and this event is not being > tracked by the higher layers. Ah, yes, good analysis... and ath5k_init is scheduling the timer. I doubt ieee80211_opened would fly; probably the better thing to do is ensure that the cleanup gets called regardless of whether ath5k_stop gets called (it shouldn't matter since the irqs all get created in _attach). -- 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