summaryrefslogtreecommitdiffstats
path: root/net/mac80211/offchannel.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-12-23 13:15:42 +0100
committerJohn W. Linville <linville@tuxdriver.com>2009-12-28 16:55:03 -0500
commitb8bc4b0aa9bfba755c64b11b8f60e6cfab25dc9d (patch)
tree7f95b0c7d4f847e3c624b67899c7a62f6b73ce26 /net/mac80211/offchannel.c
parent9588bbd5529461a3dacd435bf239c84c3508f569 (diff)
downloadlinux-b8bc4b0aa9bfba755c64b11b8f60e6cfab25dc9d.tar.bz2
mac80211: support remain-on-channel command
This implements the new remain-on-channel cfg80211 command in mac80211, extending the work interface. Also change the work purge code to be able to clean up events properly (pretending they timed out.) Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/offchannel.c')
-rw-r--r--net/mac80211/offchannel.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c
index 2cd880e444d1..a7bbfc40a648 100644
--- a/net/mac80211/offchannel.c
+++ b/net/mac80211/offchannel.c
@@ -106,9 +106,13 @@ void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local)
/*
* only handle non-STA interfaces here, STA interfaces
* are handled in ieee80211_offchannel_stop_station(),
- * e.g., from the background scan state machine
+ * e.g., from the background scan state machine.
+ *
+ * In addition, do not stop monitor interface to allow it to be
+ * used from user space controlled off-channel operations.
*/
- if (sdata->vif.type != NL80211_IFTYPE_STATION)
+ if (sdata->vif.type != NL80211_IFTYPE_STATION &&
+ sdata->vif.type != NL80211_IFTYPE_MONITOR)
netif_stop_queue(sdata->dev);
}
mutex_unlock(&local->iflist_mtx);