summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorDenton Gentry <denton.gentry@gmail.com>2014-07-29 08:36:32 +0200
committerJohannes Berg <johannes.berg@intel.com>2014-08-26 11:13:32 +0200
commitc7dcb45facedbff84237adb77bd3ba50f75c0de4 (patch)
tree7a95e6a643eed922a8df99a7011e77a56b011b09 /net/mac80211
parentmac80211: mesh_plink: handle confirm frames with new plid (diff)
downloadlinux-c7dcb45facedbff84237adb77bd3ba50f75c0de4.tar.xz
linux-c7dcb45facedbff84237adb77bd3ba50f75c0de4.zip
mac80211: fix start_seq_num in Rx reorder offload
sta->last_seq_ctrl is the seq_ctrl field from the last header seen, need to shift it 4 bits to extract the sequence number. Otherwise the ieee80211_sn_less() check at the top of ieee80211_sta_manage_reorder_buf drops frames until the sequence number catches up. Cc: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Denton Gentry <denton.gentry@gmail.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/iface.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 01eede7406a5..f75e5f132c5a 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1175,8 +1175,8 @@ static void ieee80211_iface_work(struct work_struct *work)
if (sta) {
u16 last_seq;
- last_seq = le16_to_cpu(
- sta->last_seq_ctrl[rx_agg->tid]);
+ last_seq = IEEE80211_SEQ_TO_SN(le16_to_cpu(
+ sta->last_seq_ctrl[rx_agg->tid]));
__ieee80211_start_rx_ba_session(sta,
0, 0,