summaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJohn W. Linville2010-12-02 21:46:37 +0100
committerJohn W. Linville2010-12-02 21:46:37 +0100
commit09f921f83faa49cdea25abfb98c439c01526b89d (patch)
tree1e8ee5c8f14e0e57965eca81bc6725288fd3597b /net/mac80211/rx.c
parentath5k: Fix reset and interrupts for AHB type of devices. (diff)
parentRevert "ath9k: Fix STA disconnect issue due to received MIC failed bcast frames" (diff)
downloadkernel-qcow2-linux-09f921f83faa49cdea25abfb98c439c01526b89d.tar.gz
kernel-qcow2-linux-09f921f83faa49cdea25abfb98c439c01526b89d.tar.xz
kernel-qcow2-linux-09f921f83faa49cdea25abfb98c439c01526b89d.zip
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Conflicts: drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index d83334bbb245..6289525c0998 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2254,6 +2254,10 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx)
break;
case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
case cpu_to_le16(IEEE80211_STYPE_DISASSOC):
+ if (is_multicast_ether_addr(mgmt->da) &&
+ !is_broadcast_ether_addr(mgmt->da))
+ return RX_DROP_MONITOR;
+
/* process only for station */
if (sdata->vif.type != NL80211_IFTYPE_STATION)
return RX_DROP_MONITOR;
@@ -2747,6 +2751,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
if (ieee80211_prepare_and_rx_handle(&rx, skb, true))
return;
+ goto out;
}
}
@@ -2786,6 +2791,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
return;
}
+ out:
dev_kfree_skb(skb);
}