aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-08-06 15:45:26 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-08-29 16:23:55 -0400
commit7f93ea3e246db512c0c17b79847f57dd3a2891e1 (patch)
treeeebac60fc856a727e79c5ee0bb18383f61f30d13 /net
parent4d40555250320520c5398569457962b3984fc75e (diff)
mac80211: fill start-sequence-number for BA session start
Otherwise, drivers are required to keep track of the sequence numbers themselves, and they really shouldn't be since we already do it for them. I'll fix the race once we figure out how this code should work at all, it's currently disabled. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 398ca66bdfcb..638b75f36e23 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -598,7 +598,7 @@ int ieee80211_start_tx_ba_session(struct ieee80211_hw *hw, u8 *ra, u16 tid)
598 struct ieee80211_local *local = hw_to_local(hw); 598 struct ieee80211_local *local = hw_to_local(hw);
599 struct sta_info *sta; 599 struct sta_info *sta;
600 struct ieee80211_sub_if_data *sdata; 600 struct ieee80211_sub_if_data *sdata;
601 u16 start_seq_num = 0; 601 u16 start_seq_num;
602 u8 *state; 602 u8 *state;
603 int ret; 603 int ret;
604 DECLARE_MAC_BUF(mac); 604 DECLARE_MAC_BUF(mac);
@@ -678,6 +678,9 @@ int ieee80211_start_tx_ba_session(struct ieee80211_hw *hw, u8 *ra, u16 tid)
678 * call back right away, it must see that the flow has begun */ 678 * call back right away, it must see that the flow has begun */
679 *state |= HT_ADDBA_REQUESTED_MSK; 679 *state |= HT_ADDBA_REQUESTED_MSK;
680 680
681 /* This is slightly racy because the queue isn't stopped */
682 start_seq_num = sta->tid_seq[tid];
683
681 if (local->ops->ampdu_action) 684 if (local->ops->ampdu_action)
682 ret = local->ops->ampdu_action(hw, IEEE80211_AMPDU_TX_START, 685 ret = local->ops->ampdu_action(hw, IEEE80211_AMPDU_TX_START,
683 ra, tid, &start_seq_num); 686 ra, tid, &start_seq_num);