diff options
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index b4a62fe3ccbd..7cd185e9dde4 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -19,7 +19,6 @@ | |||
19 | 19 | ||
20 | #include "ieee80211_i.h" | 20 | #include "ieee80211_i.h" |
21 | #include "ieee80211_led.h" | 21 | #include "ieee80211_led.h" |
22 | #include "ieee80211_common.h" | ||
23 | #include "wep.h" | 22 | #include "wep.h" |
24 | #include "wpa.h" | 23 | #include "wpa.h" |
25 | #include "tkip.h" | 24 | #include "tkip.h" |
@@ -412,12 +411,7 @@ ieee80211_rx_h_check(struct ieee80211_txrx_data *rx) | |||
412 | return TXRX_DROP; | 411 | return TXRX_DROP; |
413 | } | 412 | } |
414 | 413 | ||
415 | if (!rx->local->apdev) | 414 | return TXRX_DROP; |
416 | return TXRX_DROP; | ||
417 | |||
418 | ieee80211_rx_mgmt(rx->local, rx->skb, rx->u.rx.status, | ||
419 | ieee80211_msg_sta_not_assoc); | ||
420 | return TXRX_QUEUED; | ||
421 | } | 415 | } |
422 | 416 | ||
423 | return TXRX_CONTINUE; | 417 | return TXRX_CONTINUE; |
@@ -983,15 +977,8 @@ ieee80211_rx_h_802_1x_pae(struct ieee80211_txrx_data *rx) | |||
983 | { | 977 | { |
984 | if (rx->sdata->eapol && ieee80211_is_eapol(rx->skb) && | 978 | if (rx->sdata->eapol && ieee80211_is_eapol(rx->skb) && |
985 | rx->sdata->type != IEEE80211_IF_TYPE_STA && | 979 | rx->sdata->type != IEEE80211_IF_TYPE_STA && |
986 | (rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) { | 980 | (rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) |
987 | /* Pass both encrypted and unencrypted EAPOL frames to user | 981 | return TXRX_CONTINUE; |
988 | * space for processing. */ | ||
989 | if (!rx->local->apdev) | ||
990 | return TXRX_DROP; | ||
991 | ieee80211_rx_mgmt(rx->local, rx->skb, rx->u.rx.status, | ||
992 | ieee80211_msg_normal); | ||
993 | return TXRX_QUEUED; | ||
994 | } | ||
995 | 982 | ||
996 | if (unlikely(rx->sdata->ieee802_1x && | 983 | if (unlikely(rx->sdata->ieee802_1x && |
997 | (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA && | 984 | (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA && |
@@ -1233,15 +1220,11 @@ ieee80211_rx_h_mgmt(struct ieee80211_txrx_data *rx) | |||
1233 | sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev); | 1220 | sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev); |
1234 | if ((sdata->type == IEEE80211_IF_TYPE_STA || | 1221 | if ((sdata->type == IEEE80211_IF_TYPE_STA || |
1235 | sdata->type == IEEE80211_IF_TYPE_IBSS) && | 1222 | sdata->type == IEEE80211_IF_TYPE_IBSS) && |
1236 | !rx->local->user_space_mlme) { | 1223 | !rx->local->user_space_mlme) |
1237 | ieee80211_sta_rx_mgmt(rx->dev, rx->skb, rx->u.rx.status); | 1224 | ieee80211_sta_rx_mgmt(rx->dev, rx->skb, rx->u.rx.status); |
1238 | } else { | 1225 | else |
1239 | /* Management frames are sent to hostapd for processing */ | 1226 | return TXRX_DROP; |
1240 | if (!rx->local->apdev) | 1227 | |
1241 | return TXRX_DROP; | ||
1242 | ieee80211_rx_mgmt(rx->local, rx->skb, rx->u.rx.status, | ||
1243 | ieee80211_msg_normal); | ||
1244 | } | ||
1245 | return TXRX_QUEUED; | 1228 | return TXRX_QUEUED; |
1246 | } | 1229 | } |
1247 | 1230 | ||
@@ -1454,7 +1437,6 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata, | |||
1454 | /* take everything */ | 1437 | /* take everything */ |
1455 | break; | 1438 | break; |
1456 | case IEEE80211_IF_TYPE_INVALID: | 1439 | case IEEE80211_IF_TYPE_INVALID: |
1457 | case IEEE80211_IF_TYPE_MGMT: | ||
1458 | /* should never get here */ | 1440 | /* should never get here */ |
1459 | WARN_ON(1); | 1441 | WARN_ON(1); |
1460 | break; | 1442 | break; |