Commit 2d722890 authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville

mac80211: internally clear failed scans properly

When the IBSS code wants to scan, but that fails, we can
get stuck in a situation where you can never scan again.
Fix this by properly notifying ourselves when the scan
request has failed.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9ccebe61
......@@ -439,7 +439,8 @@ static void ieee80211_sta_merge_ibss(struct ieee80211_sub_if_data *sdata)
memcpy(sdata->local->int_scan_req.ssids[0].ssid,
ifibss->ssid, IEEE80211_MAX_SSID_LEN);
sdata->local->int_scan_req.ssids[0].ssid_len = ifibss->ssid_len;
ieee80211_request_scan(sdata, &sdata->local->int_scan_req);
if (ieee80211_request_scan(sdata, &sdata->local->int_scan_req))
ieee80211_scan_failed(sdata->local);
}
static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata)
......@@ -560,7 +561,8 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
ifibss->ssid, IEEE80211_MAX_SSID_LEN);
local->int_scan_req.ssids[0].ssid_len =
ifibss->ssid_len;
ieee80211_request_scan(sdata, &local->int_scan_req);
if (ieee80211_request_scan(sdata, &local->int_scan_req))
ieee80211_scan_failed(local);
} else if (ifibss->state != IEEE80211_IBSS_MLME_JOINED) {
int interval = IEEE80211_SCAN_INTERVAL;
......
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