On Tue, 2011-05-03 at 21:40 +0300, Luciano Coelho wrote: > When we are disconnecting, we set PS off, but this happens before we > send the deauth/disassoc request. When the deauth/disassoc frames are > sent, we trigger the dynamic ps timer, which then times out and turns > PS back on. Thus, PS remains on after disconnecting, causing problems > when associating again. > > This can be fixed by preventing the timer to start when we're not > associated anymore. > > Signed-off-by: Luciano Coelho <coelho@xxxxxx> > --- > net/mac80211/tx.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c > index e3e3aa1..21accf8 100644 > --- a/net/mac80211/tx.c > +++ b/net/mac80211/tx.c > @@ -237,6 +237,10 @@ ieee80211_tx_h_dynamic_ps(struct ieee80211_tx_data *tx) > &local->dynamic_ps_disable_work); > } > > + /* Don't restart the timer if we're not disassociated */ > + if (!ifmgd->associated) > + return TX_CONTINUE; > + > mod_timer(&local->dynamic_ps_timer, jiffies + > msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); > Do you people think this should go into 2.6.39? -- Cheers, Luca. -- 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