diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-08-06 15:45:26 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-29 16:23:55 -0400 |
commit | 7f93ea3e246db512c0c17b79847f57dd3a2891e1 (patch) | |
tree | eebac60fc856a727e79c5ee0bb18383f61f30d13 /net | |
parent | 4d40555250320520c5398569457962b3984fc75e (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.c | 5 |
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); |