diff options
author | Denton Gentry <denton.gentry@gmail.com> | 2014-07-29 08:36:32 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-08-26 11:13:32 +0200 |
commit | c7dcb45facedbff84237adb77bd3ba50f75c0de4 (patch) | |
tree | 7a95e6a643eed922a8df99a7011e77a56b011b09 /net | |
parent | mac80211: mesh_plink: handle confirm frames with new plid (diff) | |
download | linux-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')
-rw-r--r-- | net/mac80211/iface.c | 4 |
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, |