diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-01-24 14:44:35 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-01-25 16:36:28 -0500 |
commit | 1396b231b0369c4146988c2f42fb416ae19e2572 (patch) | |
tree | 3afd6b356b33d712eb88a01472cdf2a873f1d4ca /net/mac80211/work.c | |
parent | eb807fb23878bc319e029ed8ce3d835d239723a5 (diff) |
mac80211: fix WARN_ON in the new work code
ieee80211_work_rx_mgmt currently enqueues various management frames,
including deauth and disassoc frames, however the function
ieee80211_work_rx_queued_mgmt does not handle these, as they should
only occur if the AP is buggy. It does emit a WARN_ON when this happens
though, and several users have reported such instances.
Fix the WARN_ON by not queueing such frames in the first place.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/work.c')
-rw-r--r-- | net/mac80211/work.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/net/mac80211/work.c b/net/mac80211/work.c index 81bd5d592bb4..df8277cdb4d0 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c | |||
@@ -1022,8 +1022,6 @@ ieee80211_rx_result ieee80211_work_rx_mgmt(struct ieee80211_sub_if_data *sdata, | |||
1022 | case IEEE80211_STYPE_PROBE_RESP: | 1022 | case IEEE80211_STYPE_PROBE_RESP: |
1023 | case IEEE80211_STYPE_ASSOC_RESP: | 1023 | case IEEE80211_STYPE_ASSOC_RESP: |
1024 | case IEEE80211_STYPE_REASSOC_RESP: | 1024 | case IEEE80211_STYPE_REASSOC_RESP: |
1025 | case IEEE80211_STYPE_DEAUTH: | ||
1026 | case IEEE80211_STYPE_DISASSOC: | ||
1027 | skb_queue_tail(&local->work_skb_queue, skb); | 1025 | skb_queue_tail(&local->work_skb_queue, skb); |
1028 | ieee80211_queue_work(&local->hw, &local->work_work); | 1026 | ieee80211_queue_work(&local->hw, &local->work_work); |
1029 | return RX_QUEUED; | 1027 | return RX_QUEUED; |