mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
mac80211: don't look at the PM bit of BAR frames
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. Cc: stable@vger.kernel.org Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
0bed865060
commit
769dc04db3
1 changed files with 5 additions and 1 deletions
|
@ -1613,12 +1613,16 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
|
|||
*/
|
||||
if (!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS) &&
|
||||
!ieee80211_has_morefrags(hdr->frame_control) &&
|
||||
!ieee80211_is_back_req(hdr->frame_control) &&
|
||||
!(status->rx_flags & IEEE80211_RX_DEFERRED_RELEASE) &&
|
||||
(rx->sdata->vif.type == NL80211_IFTYPE_AP ||
|
||||
rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) &&
|
||||
/* PM bit is only checked in frames where it isn't reserved,
|
||||
/*
|
||||
* PM bit is only checked in frames where it isn't reserved,
|
||||
* in AP mode it's reserved in non-bufferable management frames
|
||||
* (cf. IEEE 802.11-2012 8.2.4.1.7 Power Management field)
|
||||
* BAR frames should be ignored as specified in
|
||||
* IEEE 802.11-2012 10.2.1.2.
|
||||
*/
|
||||
(!ieee80211_is_mgmt(hdr->frame_control) ||
|
||||
ieee80211_is_bufferable_mmpdu(hdr->frame_control))) {
|
||||
|
|
Loading…
Reference in a new issue