aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2010-12-02 15:46:37 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-02 15:46:37 -0500
commit09f921f83faa49cdea25abfb98c439c01526b89d (patch)
tree1e8ee5c8f14e0e57965eca81bc6725288fd3597b /net/mac80211
parent4cebb34caa5122216a1e2451eae9e0fc47ec2589 (diff)
parentd89197c7f34934fbb0f96d938a0d6cfe0b8bcb1c (diff)
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')
-rw-r--r--net/mac80211/rx.c6
-rw-r--r--net/mac80211/tx.c7
2 files changed, 12 insertions, 1 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)
2254 break; 2254 break;
2255 case cpu_to_le16(IEEE80211_STYPE_DEAUTH): 2255 case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
2256 case cpu_to_le16(IEEE80211_STYPE_DISASSOC): 2256 case cpu_to_le16(IEEE80211_STYPE_DISASSOC):
2257 if (is_multicast_ether_addr(mgmt->da) &&
2258 !is_broadcast_ether_addr(mgmt->da))
2259 return RX_DROP_MONITOR;
2260
2257 /* process only for station */ 2261 /* process only for station */
2258 if (sdata->vif.type != NL80211_IFTYPE_STATION) 2262 if (sdata->vif.type != NL80211_IFTYPE_STATION)
2259 return RX_DROP_MONITOR; 2263 return RX_DROP_MONITOR;
@@ -2747,6 +2751,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
2747 2751
2748 if (ieee80211_prepare_and_rx_handle(&rx, skb, true)) 2752 if (ieee80211_prepare_and_rx_handle(&rx, skb, true))
2749 return; 2753 return;
2754 goto out;
2750 } 2755 }
2751 } 2756 }
2752 2757
@@ -2786,6 +2791,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
2786 return; 2791 return;
2787 } 2792 }
2788 2793
2794 out:
2789 dev_kfree_skb(skb); 2795 dev_kfree_skb(skb);
2790} 2796}
2791 2797
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index e69483647f33..2ba742656825 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1595,7 +1595,12 @@ static void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
1595 list) { 1595 list) {
1596 if (!ieee80211_sdata_running(tmp_sdata)) 1596 if (!ieee80211_sdata_running(tmp_sdata))
1597 continue; 1597 continue;
1598 if (tmp_sdata->vif.type != NL80211_IFTYPE_AP) 1598 if (tmp_sdata->vif.type ==
1599 NL80211_IFTYPE_MONITOR ||
1600 tmp_sdata->vif.type ==
1601 NL80211_IFTYPE_AP_VLAN ||
1602 tmp_sdata->vif.type ==
1603 NL80211_IFTYPE_WDS)
1599 continue; 1604 continue;
1600 if (compare_ether_addr(tmp_sdata->vif.addr, 1605 if (compare_ether_addr(tmp_sdata->vif.addr,
1601 hdr->addr2) == 0) { 1606 hdr->addr2) == 0) {