mac80211: merge a fix for PS-Poll handling, refresh patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 37264
This commit is contained in:
parent
e389c2b410
commit
f8543faec4
3 changed files with 22 additions and 5 deletions
|
@ -196,7 +196,24 @@
|
|||
static void
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -2369,6 +2369,7 @@ ieee80211_rx_h_action(struct ieee80211_r
|
||||
@@ -936,8 +936,14 @@ ieee80211_rx_h_check(struct ieee80211_rx
|
||||
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)rx->skb->data;
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb);
|
||||
|
||||
- /* Drop duplicate 802.11 retransmissions (IEEE 802.11 Chap. 9.2.9) */
|
||||
- if (rx->sta && !is_multicast_ether_addr(hdr->addr1)) {
|
||||
+ /*
|
||||
+ * Drop duplicate 802.11 retransmissions
|
||||
+ * (IEEE 802.11-2012: 9.3.2.10 "Duplicate detection and recovery")
|
||||
+ */
|
||||
+ if (rx->skb->len >= 24 && rx->sta &&
|
||||
+ !ieee80211_is_ctl(hdr->frame_control) &&
|
||||
+ !ieee80211_is_qos_nullfunc(hdr->frame_control) &&
|
||||
+ !is_multicast_ether_addr(hdr->addr1)) {
|
||||
if (unlikely(ieee80211_has_retry(hdr->frame_control) &&
|
||||
rx->sta->last_seq_ctrl[rx->seqno_idx] ==
|
||||
hdr->seq_ctrl)) {
|
||||
@@ -2369,6 +2375,7 @@ ieee80211_rx_h_action(struct ieee80211_r
|
||||
sdata->vif.type != NL80211_IFTYPE_MESH_POINT &&
|
||||
sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
|
||||
sdata->vif.type != NL80211_IFTYPE_AP &&
|
||||
|
@ -204,7 +221,7 @@
|
|||
sdata->vif.type != NL80211_IFTYPE_ADHOC)
|
||||
break;
|
||||
|
||||
@@ -2720,14 +2721,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_
|
||||
@@ -2720,14 +2727,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_
|
||||
|
||||
if (!ieee80211_vif_is_mesh(&sdata->vif) &&
|
||||
sdata->vif.type != NL80211_IFTYPE_ADHOC &&
|
||||
|
@ -222,7 +239,7 @@
|
|||
break;
|
||||
case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
|
||||
case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP):
|
||||
@@ -3059,10 +3061,16 @@ static int prepare_for_handlers(struct i
|
||||
@@ -3059,10 +3067,16 @@ static int prepare_for_handlers(struct i
|
||||
}
|
||||
break;
|
||||
case NL80211_IFTYPE_WDS:
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
---help---
|
||||
--- a/.local-symbols
|
||||
+++ b/.local-symbols
|
||||
@@ -122,6 +122,7 @@ RTL8187_LEDS=
|
||||
@@ -123,6 +123,7 @@ RTL8187_LEDS=
|
||||
ATH_COMMON=
|
||||
ATH_CARDS=
|
||||
ATH_DEBUG=
|
||||
|
|
|
@ -279,7 +279,7 @@
|
|||
|
||||
--- a/.local-symbols
|
||||
+++ b/.local-symbols
|
||||
@@ -271,6 +271,7 @@ RT2X00_LIB_FIRMWARE=
|
||||
@@ -272,6 +272,7 @@ RT2X00_LIB_FIRMWARE=
|
||||
RT2X00_LIB_CRYPTO=
|
||||
RT2X00_LIB_LEDS=
|
||||
RT2X00_LIB_DEBUGFS=
|
||||
|
|
Loading…
Reference in a new issue