From fb749bf51a7855ee955fc221acdc51b94231db2b Mon Sep 17 00:00:00 2001 From: Olof Sivertsson Date: Wed, 17 Jan 2018 13:32:09 +0100 Subject: [PATCH] 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 [rebased on top of variadic nl80211_wait()] Signed-off-by: Jo-Philipp Wich --- iwinfo_nl80211.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/iwinfo_nl80211.c b/iwinfo_nl80211.c index 895b6ee..99177e7 100644 --- a/iwinfo_nl80211.c +++ b/iwinfo_nl80211.c @@ -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)) 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; if (nl80211_request(ifname, NL80211_CMD_GET_SCAN, NLM_F_DUMP, -- 2.11.0