nl80211: do not block when driver aborts scan
Drivers may abort a scan by calling cfg80211_scan_done() with a struct cfg80211_scan_info that sets aborted to true. To avoid blocking forever consider both NL80211_CMD_NEW_SCAN_RESULTS and NL80211_CMD_SCAN_ABORTED when waiting for scan results. Tested with Broadcom's bcmdhd driver. Signed-off-by: Olof Sivertsson <olof.sivertsson@zenterio.com> [rebased on top of variadic nl80211_wait()] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
75c572074f
commit
fb749bf51a
1 changed files with 2 additions and 1 deletions
|
@ -2103,7 +2103,8 @@ static int nl80211_get_scanlist_nl(const char *ifname, char *buf, int *len)
|
||||||
if (nl80211_request(ifname, NL80211_CMD_TRIGGER_SCAN, 0, NULL, NULL))
|
if (nl80211_request(ifname, NL80211_CMD_TRIGGER_SCAN, 0, NULL, NULL))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (nl80211_wait("nl80211", "scan", NL80211_CMD_NEW_SCAN_RESULTS))
|
if (nl80211_wait("nl80211", "scan",
|
||||||
|
NL80211_CMD_NEW_SCAN_RESULTS, NL80211_CMD_SCAN_ABORTED))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (nl80211_request(ifname, NL80211_CMD_GET_SCAN, NLM_F_DUMP,
|
if (nl80211_request(ifname, NL80211_CMD_GET_SCAN, NLM_F_DUMP,
|
||||||
|
|
Loading…
Reference in a new issue