aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-12-08 16:15:38 -0500
committerDavid S. Miller <davem@davemloft.net>2010-12-08 16:47:38 -0500
commitfe6c791570efe717946ea7b7dd50aec96b70d551 (patch)
tree1becb5e8aea7a9c9a7d78f987bd73b0a5d8ee434 /net/mac80211
parentf8bf5681cf15f77692c8ad8cb95d059ff7c622c9 (diff)
parentf19872575ff7819a3723154657a497d9bca66b33 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/ath/ath9k/ar9003_eeprom.c net/llc/af_llc.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 d2fcd22ab06..55337709de4 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2245,6 +2245,10 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx)
2245 break; 2245 break;
2246 case cpu_to_le16(IEEE80211_STYPE_DEAUTH): 2246 case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
2247 case cpu_to_le16(IEEE80211_STYPE_DISASSOC): 2247 case cpu_to_le16(IEEE80211_STYPE_DISASSOC):
2248 if (is_multicast_ether_addr(mgmt->da) &&
2249 !is_broadcast_ether_addr(mgmt->da))
2250 return RX_DROP_MONITOR;
2251
2248 /* process only for station */ 2252 /* process only for station */
2249 if (sdata->vif.type != NL80211_IFTYPE_STATION) 2253 if (sdata->vif.type != NL80211_IFTYPE_STATION)
2250 return RX_DROP_MONITOR; 2254 return RX_DROP_MONITOR;
@@ -2739,6 +2743,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
2739 2743
2740 if (ieee80211_prepare_and_rx_handle(&rx, skb, true)) 2744 if (ieee80211_prepare_and_rx_handle(&rx, skb, true))
2741 return; 2745 return;
2746 goto out;
2742 } 2747 }
2743 } 2748 }
2744 2749
@@ -2778,6 +2783,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
2778 return; 2783 return;
2779 } 2784 }
2780 2785
2786 out:
2781 dev_kfree_skb(skb); 2787 dev_kfree_skb(skb);
2782} 2788}
2783 2789
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index e69483647f3..2ba74265682 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) {