summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2010-05-30 14:53:43 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-06-03 20:10:45 +0200
commit08daecaead42b85b69b33d7d8429a93dfbf75b58 (patch)
tree920dce6666547bcf07ae6aad203e162a8ada9411 /net/mac80211
parentmac80211: remove useless work starting (diff)
downloadlinux-08daecaead42b85b69b33d7d8429a93dfbf75b58.tar.xz
linux-08daecaead42b85b69b33d7d8429a93dfbf75b58.zip
mac80211: drop control frames after processing
After ieee80211_rx_h_ctrl() processing we only want to process management (including action) frames, so there's no point in letting control frames continue. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/rx.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 0ade26793918..0b9898ac4d87 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1844,7 +1844,12 @@ ieee80211_rx_h_ctrl(struct ieee80211_rx_data *rx, struct sk_buff_head *frames)
return RX_QUEUED;
}
- return RX_CONTINUE;
+ /*
+ * After this point, we only want management frames,
+ * so we can drop all remaining control frames to
+ * cooked monitor interfaces.
+ */
+ return RX_DROP_MONITOR;
}
static void ieee80211_process_sa_query_req(struct ieee80211_sub_if_data *sdata,