Commit f27b62d3 authored by Daniel Drake's avatar Daniel Drake Committed by John W. Linville

[PATCH] mac80211: don't allow scanning in monitor mode

zd1211rw gets confused when the user asks for a scan when the device is
in monitor mode. This patch tightens up the SIWSCAN handler to deny the scan
under these conditions.
Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
Signed-off-by: default avatarJiri Benc <jbenc@suse.cz>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent ba9b07d0
...@@ -697,17 +697,24 @@ static int ieee80211_ioctl_siwscan(struct net_device *dev, ...@@ -697,17 +697,24 @@ static int ieee80211_ioctl_siwscan(struct net_device *dev,
if (!netif_running(dev)) if (!netif_running(dev))
return -ENETDOWN; return -ENETDOWN;
switch (sdata->type) {
case IEEE80211_IF_TYPE_STA:
case IEEE80211_IF_TYPE_IBSS:
if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) { if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
if (sdata->type == IEEE80211_IF_TYPE_STA ||
sdata->type == IEEE80211_IF_TYPE_IBSS) {
ssid = sdata->u.sta.ssid; ssid = sdata->u.sta.ssid;
ssid_len = sdata->u.sta.ssid_len; ssid_len = sdata->u.sta.ssid_len;
} else if (sdata->type == IEEE80211_IF_TYPE_AP) { }
break;
case IEEE80211_IF_TYPE_AP:
if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
ssid = sdata->u.ap.ssid; ssid = sdata->u.ap.ssid;
ssid_len = sdata->u.ap.ssid_len; ssid_len = sdata->u.ap.ssid_len;
} else
return -EINVAL;
} }
break;
default:
return -EOPNOTSUPP;
}
return ieee80211_sta_req_scan(dev, ssid, ssid_len); return ieee80211_sta_req_scan(dev, ssid, ssid_len);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment