From 9e263f2e5e8b32c341379fd2778211b4b1e5197f Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 31 Jan 2008 19:48:24 +0100 Subject: [PATCH] --- yaml --- r: 89891 b: refs/heads/master c: 2c9745e5684ad75d02020bcaa31ab6d4b498e1e1 h: refs/heads/master i: 89889: 1d36935238d50124db7ed822218d11cdc6fcad05 89887: a7ded5e30b57a4f4cdfb255262e5bed8ec649c13 v: v3 --- [refs] | 2 +- trunk/net/mac80211/rx.c | 37 ++++++++++--------------------------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/[refs] b/[refs] index 1dde17320b14..0071435c54cc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8cc9a73914b07b5908d8a59320f4557fc9639f2e +refs/heads/master: 2c9745e5684ad75d02020bcaa31ab6d4b498e1e1 diff --git a/trunk/net/mac80211/rx.c b/trunk/net/mac80211/rx.c index 860c488984d8..794917fccd9b 100644 --- a/trunk/net/mac80211/rx.c +++ b/trunk/net/mac80211/rx.c @@ -1448,11 +1448,10 @@ ieee80211_rx_h_mgmt(struct ieee80211_txrx_data *rx) return RX_QUEUED; } -static inline ieee80211_rx_result __ieee80211_invoke_rx_handlers( - struct ieee80211_local *local, - ieee80211_rx_handler *handlers, - struct ieee80211_txrx_data *rx, - struct sta_info *sta) +static void ieee80211_invoke_rx_handlers(struct ieee80211_local *local, + ieee80211_rx_handler *handlers, + struct ieee80211_txrx_data *rx, + struct sta_info *sta) { ieee80211_rx_handler *handler; ieee80211_rx_result res = RX_DROP_MONITOR; @@ -1476,19 +1475,13 @@ static inline ieee80211_rx_result __ieee80211_invoke_rx_handlers( break; } - if (res == RX_DROP_UNUSABLE || res == RX_DROP_MONITOR) - dev_kfree_skb(rx->skb); - return res; -} - -static inline void ieee80211_invoke_rx_handlers(struct ieee80211_local *local, - ieee80211_rx_handler *handlers, - struct ieee80211_txrx_data *rx, - struct sta_info *sta) -{ - if (__ieee80211_invoke_rx_handlers(local, handlers, rx, sta) == - RX_CONTINUE) + switch (res) { + case RX_DROP_MONITOR: + case RX_DROP_UNUSABLE: + case RX_CONTINUE: dev_kfree_skb(rx->skb); + break; + } } static void ieee80211_rx_michael_mic_report(struct net_device *dev, @@ -1718,16 +1711,6 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw, skb = rx.skb; - if (sta && !(sta->flags & (WLAN_STA_WDS | WLAN_STA_ASSOC_AP)) && - !atomic_read(&local->iff_promiscs) && - !is_multicast_ether_addr(hdr->addr1)) { - rx.flags |= IEEE80211_TXRXD_RXRA_MATCH; - ieee80211_invoke_rx_handlers(local, local->rx_handlers, &rx, - rx.sta); - sta_info_put(sta); - return; - } - list_for_each_entry_rcu(sdata, &local->interfaces, list) { if (!netif_running(sdata->dev)) continue;