mac80211: quit addba_resp_timer if Tx BA session is torn down
authorZhu Yi <yi.zhu@intel.com>
Mon, 28 Dec 2009 08:57:15 +0000 (16:57 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 12 Jan 2010 18:50:08 +0000 (13:50 -0500)
Make addba_resp_timer aware the HT_AGG_STATE_REQ_STOP_BA_MSK mask
so that when ___ieee80211_stop_tx_ba_session() is issued the timer
will quit. Otherwise when suspend happens before the timer expired,
the timer handler will be called immediately after resume and
messes up driver status.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/agg-tx.c

index 5aa8f4a3ed174907ca8ded2f68e7dd66123d643a..718fbcff84d24e230fadd5808a80d12aee889020 100644 (file)
@@ -179,7 +179,8 @@ static void sta_addba_resp_timer_expired(unsigned long data)
 
        /* check if the TID waits for addBA response */
        spin_lock_bh(&sta->lock);
-       if ((*state & (HT_ADDBA_REQUESTED_MSK | HT_ADDBA_RECEIVED_MSK)) !=
+       if ((*state & (HT_ADDBA_REQUESTED_MSK | HT_ADDBA_RECEIVED_MSK |
+                      HT_AGG_STATE_REQ_STOP_BA_MSK)) !=
                                                HT_ADDBA_REQUESTED_MSK) {
                spin_unlock_bh(&sta->lock);
                *state = HT_AGG_STATE_IDLE;