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:
Felix Fietkau 2013-07-12 07:59:59 +00:00
parent e389c2b410
commit f8543faec4
3 changed files with 22 additions and 5 deletions

View file

@ -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:

View file

@ -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=

View file

@ -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=