diff options
author | Michal Kazior <michal.kazior@tieto.com> | 2014-09-02 14:05:10 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-09-03 13:40:38 +0200 |
commit | 4549cf2b1803d29cfd019f7bfeaa784f8f9c558f (patch) | |
tree | bf39255e299b752cea30ce8437b9a685b189e5d4 /net/mac80211/ieee80211_i.h | |
parent | d0616613d9cf17919fbd46fa0274db4b0084ad62 (diff) | |
download | lwn-4549cf2b1803d29cfd019f7bfeaa784f8f9c558f.tar.gz lwn-4549cf2b1803d29cfd019f7bfeaa784f8f9c558f.zip |
mac80211: fix offloaded BA session traffic after hw restart
When starting an offloaded BA session it is
unknown what starting sequence number should be
used. Using last_seq worked in most cases except
after hw restart.
When hw restart is requested last_seq is
(rightfully so) kept unmodified. This ended up
with BA sessions being restarted with an aribtrary
BA window values resulting in dropped frames until
sequence numbers caught up.
Instead of last_seq pick seqno of a first Rxed
frame of a given BA session.
This fixes stalled traffic after hw restart with
offloaded BA sessions (currently only ath10k).
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index ffb20e5e6cf3..8fe5433f0d35 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@ -1587,7 +1587,7 @@ void __ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, void __ieee80211_start_rx_ba_session(struct sta_info *sta, u8 dialog_token, u16 timeout, u16 start_seq_num, u16 ba_policy, u16 tid, - u16 buf_size, bool tx); + u16 buf_size, bool tx, bool auto_seq); void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta, enum ieee80211_agg_stop_reason reason); void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, |