|
@@ -1613,12 +1613,16 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
|
|
*/
|
|
*/
|
|
if (!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS) &&
|
|
if (!ieee80211_hw_check(&sta->local->hw, AP_LINK_PS) &&
|
|
!ieee80211_has_morefrags(hdr->frame_control) &&
|
|
!ieee80211_has_morefrags(hdr->frame_control) &&
|
|
|
|
+ !ieee80211_is_back_req(hdr->frame_control) &&
|
|
!(status->rx_flags & IEEE80211_RX_DEFERRED_RELEASE) &&
|
|
!(status->rx_flags & IEEE80211_RX_DEFERRED_RELEASE) &&
|
|
(rx->sdata->vif.type == NL80211_IFTYPE_AP ||
|
|
(rx->sdata->vif.type == NL80211_IFTYPE_AP ||
|
|
rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) &&
|
|
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
|
|
* in AP mode it's reserved in non-bufferable management frames
|
|
* (cf. IEEE 802.11-2012 8.2.4.1.7 Power Management field)
|
|
* (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_mgmt(hdr->frame_control) ||
|
|
ieee80211_is_bufferable_mmpdu(hdr->frame_control))) {
|
|
ieee80211_is_bufferable_mmpdu(hdr->frame_control))) {
|