diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/rx.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index d00ace78bf8d..d0803797902b 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1586,20 +1586,20 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) | |||
1586 | static ieee80211_rx_result debug_noinline | 1586 | static ieee80211_rx_result debug_noinline |
1587 | ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx) | 1587 | ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx) |
1588 | { | 1588 | { |
1589 | struct ieee80211_sub_if_data *sdata; | 1589 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev); |
1590 | 1590 | ||
1591 | if (!(rx->flags & IEEE80211_RX_RA_MATCH)) | 1591 | if (!(rx->flags & IEEE80211_RX_RA_MATCH)) |
1592 | return RX_DROP_MONITOR; | 1592 | return RX_DROP_MONITOR; |
1593 | 1593 | ||
1594 | sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev); | 1594 | if (sdata->vif.type != IEEE80211_IF_TYPE_STA && |
1595 | if ((sdata->vif.type == IEEE80211_IF_TYPE_STA || | 1595 | sdata->vif.type != IEEE80211_IF_TYPE_IBSS && |
1596 | sdata->vif.type == IEEE80211_IF_TYPE_IBSS || | 1596 | sdata->vif.type != IEEE80211_IF_TYPE_MESH_POINT) |
1597 | sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT) && | 1597 | return RX_DROP_MONITOR; |
1598 | !(sdata->flags & IEEE80211_SDATA_USERSPACE_MLME)) | 1598 | |
1599 | ieee80211_sta_rx_mgmt(sdata, rx->skb, rx->status); | 1599 | if (sdata->flags & IEEE80211_SDATA_USERSPACE_MLME) |
1600 | else | ||
1601 | return RX_DROP_MONITOR; | 1600 | return RX_DROP_MONITOR; |
1602 | 1601 | ||
1602 | ieee80211_sta_rx_mgmt(sdata, rx->skb, rx->status); | ||
1603 | return RX_QUEUED; | 1603 | return RX_QUEUED; |
1604 | } | 1604 | } |
1605 | 1605 | ||