mirror of https://github.com/hak5/openwrt-owl.git
mac80211: merge a fix for PS-Poll handling, refresh patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 37264owl
parent
e389c2b410
commit
f8543faec4
|
@ -196,7 +196,24 @@
|
||||||
static void
|
static void
|
||||||
--- a/net/mac80211/rx.c
|
--- a/net/mac80211/rx.c
|
||||||
+++ b/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_MESH_POINT &&
|
||||||
sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
|
sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
|
||||||
sdata->vif.type != NL80211_IFTYPE_AP &&
|
sdata->vif.type != NL80211_IFTYPE_AP &&
|
||||||
|
@ -204,7 +221,7 @@
|
||||||
sdata->vif.type != NL80211_IFTYPE_ADHOC)
|
sdata->vif.type != NL80211_IFTYPE_ADHOC)
|
||||||
break;
|
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) &&
|
if (!ieee80211_vif_is_mesh(&sdata->vif) &&
|
||||||
sdata->vif.type != NL80211_IFTYPE_ADHOC &&
|
sdata->vif.type != NL80211_IFTYPE_ADHOC &&
|
||||||
|
@ -222,7 +239,7 @@
|
||||||
break;
|
break;
|
||||||
case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
|
case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
|
||||||
case cpu_to_le16(IEEE80211_STYPE_REASSOC_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;
|
break;
|
||||||
case NL80211_IFTYPE_WDS:
|
case NL80211_IFTYPE_WDS:
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
---help---
|
---help---
|
||||||
--- a/.local-symbols
|
--- a/.local-symbols
|
||||||
+++ b/.local-symbols
|
+++ b/.local-symbols
|
||||||
@@ -122,6 +122,7 @@ RTL8187_LEDS=
|
@@ -123,6 +123,7 @@ RTL8187_LEDS=
|
||||||
ATH_COMMON=
|
ATH_COMMON=
|
||||||
ATH_CARDS=
|
ATH_CARDS=
|
||||||
ATH_DEBUG=
|
ATH_DEBUG=
|
||||||
|
|
|
@ -279,7 +279,7 @@
|
||||||
|
|
||||||
--- a/.local-symbols
|
--- a/.local-symbols
|
||||||
+++ b/.local-symbols
|
+++ b/.local-symbols
|
||||||
@@ -271,6 +271,7 @@ RT2X00_LIB_FIRMWARE=
|
@@ -272,6 +272,7 @@ RT2X00_LIB_FIRMWARE=
|
||||||
RT2X00_LIB_CRYPTO=
|
RT2X00_LIB_CRYPTO=
|
||||||
RT2X00_LIB_LEDS=
|
RT2X00_LIB_LEDS=
|
||||||
RT2X00_LIB_DEBUGFS=
|
RT2X00_LIB_DEBUGFS=
|
||||||
|
|
Loading…
Reference in New Issue