aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/ieee80211_sta.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
index c4d57346eacf..d0273ccbdbae 100644
--- a/net/mac80211/ieee80211_sta.c
+++ b/net/mac80211/ieee80211_sta.c
@@ -1403,14 +1403,23 @@ static void ieee80211_sta_process_delba(struct net_device *dev,
1403 1403
1404#ifdef CONFIG_MAC80211_HT_DEBUG 1404#ifdef CONFIG_MAC80211_HT_DEBUG
1405 if (net_ratelimit()) 1405 if (net_ratelimit())
1406 printk(KERN_DEBUG "delba from %s on tid %d reason code %d\n", 1406 printk(KERN_DEBUG "delba from %s (%s) tid %d reason code %d\n",
1407 print_mac(mac, mgmt->sa), tid, 1407 print_mac(mac, mgmt->sa),
1408 initiator ? "recipient" : "initiator", tid,
1408 mgmt->u.action.u.delba.reason_code); 1409 mgmt->u.action.u.delba.reason_code);
1409#endif /* CONFIG_MAC80211_HT_DEBUG */ 1410#endif /* CONFIG_MAC80211_HT_DEBUG */
1410 1411
1411 if (initiator == WLAN_BACK_INITIATOR) 1412 if (initiator == WLAN_BACK_INITIATOR)
1412 ieee80211_sta_stop_rx_ba_session(dev, sta->addr, tid, 1413 ieee80211_sta_stop_rx_ba_session(dev, sta->addr, tid,
1413 WLAN_BACK_INITIATOR, 0); 1414 WLAN_BACK_INITIATOR, 0);
1415 else { /* WLAN_BACK_RECIPIENT */
1416 spin_lock_bh(&sta->ampdu_mlme.ampdu_tx);
1417 sta->ampdu_mlme.tid_tx[tid].state =
1418 HT_AGG_STATE_OPERATIONAL;
1419 spin_unlock_bh(&sta->ampdu_mlme.ampdu_tx);
1420 ieee80211_stop_tx_ba_session(&local->hw, sta->addr, tid,
1421 WLAN_BACK_RECIPIENT);
1422 }
1414 sta_info_put(sta); 1423 sta_info_put(sta);
1415} 1424}
1416 1425