On Wed, Aug 6, 2008 at 10:45 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > 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@xxxxxxxxxxxxxxxx> Finally I know why nothing works in iwlwifi. This is most crucial point of correct driver behavior. There is direct mapping between hw queue indexes and sequence numbers.... This is bad. > --- > net/mac80211/ht.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > --- everything.orig/net/mac80211/ht.c 2008-08-06 21:40:24.000000000 +0200 > +++ everything/net/mac80211/ht.c 2008-08-06 21:43:42.000000000 +0200 > @@ -78,7 +78,7 @@ int ieee80211_start_tx_ba_session(struct > struct ieee80211_local *local = hw_to_local(hw); > struct sta_info *sta; > struct ieee80211_sub_if_data *sdata; > - u16 start_seq_num = 0; > + u16 start_seq_num; > u8 *state; > int ret; > DECLARE_MAC_BUF(mac); > @@ -158,6 +158,9 @@ int ieee80211_start_tx_ba_session(struct > * call back right away, it must see that the flow has begun */ > *state |= HT_ADDBA_REQUESTED_MSK; > > + /* This is slightly racy because the queue isn't stopped */ > + start_seq_num = sta->tid_seq[tid]; > + > if (local->ops->ampdu_action) > ret = local->ops->ampdu_action(hw, IEEE80211_AMPDU_TX_START, > ra, tid, &start_seq_num); > > > -- > 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 > -- 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