Skip to content

Commit 156f006

Browse files
egrumbachgregkh
authored andcommitted
mac80211: don't look at the PM bit of BAR frames
commit 769dc04db3ed8484798aceb015b94deacc2ba557 upstream. When a peer sends a BAR frame with PM bit clear, we should not modify its PM state as madated by the spec in 802.11-20012 10.2.1.2. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent a8686c9 commit 156f006

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

net/mac80211/rx.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1455,12 +1455,16 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
14551455
*/
14561456
if (!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS) &&
14571457
!ieee80211_has_morefrags(hdr->frame_control) &&
1458+
!ieee80211_is_back_req(hdr->frame_control) &&
14581459
!(status->rx_flags & IEEE80211_RX_DEFERRED_RELEASE) &&
14591460
(rx->sdata->vif.type == NL80211_IFTYPE_AP ||
14601461
rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) &&
1461-
/* PM bit is only checked in frames where it isn't reserved,
1462+
/*
1463+
* PM bit is only checked in frames where it isn't reserved,
14621464
* in AP mode it's reserved in non-bufferable management frames
14631465
* (cf. IEEE 802.11-2012 8.2.4.1.7 Power Management field)
1466+
* BAR frames should be ignored as specified in
1467+
* IEEE 802.11-2012 10.2.1.2.
14641468
*/
14651469
(!ieee80211_is_mgmt(hdr->frame_control) ||
14661470
ieee80211_is_bufferable_mmpdu(hdr->frame_control))) {

0 commit comments

Comments
 (0)