From f593b6c11d3f468f1fd9e0d63ce3263c7dd8e3c7 Mon Sep 17 00:00:00 2001 From: Sunil Dutt Date: Wed, 25 Jan 2017 16:36:19 +0530 Subject: [PATCH] nl80211: Do not reset vendor_scan_cookie after scan timeout If vendor_scan_cookie is set to 0 after the scan_abort due to the scan timeout ends in a cookie mismatch when processing the following QCA_NL80211_VENDOR_SUBCMD_SCAN_DONE indication. This ends up considering the scan results as being for an external scan and thus the current ongoing scan is not removed from the radio_work. Hence, do not reset this vendor_scan_cookie after the scan abort so that the scan completion event gets processed properly and vendor_scan_cookie gets cleared at that point. Signed-off-by: Jouni Malinen --- src/drivers/driver_nl80211_scan.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/drivers/driver_nl80211_scan.c b/src/drivers/driver_nl80211_scan.c index 7dcfae28e..b577531f8 100644 --- a/src/drivers/driver_nl80211_scan.c +++ b/src/drivers/driver_nl80211_scan.c @@ -156,10 +156,8 @@ void wpa_driver_nl80211_scan_timeout(void *eloop_ctx, void *timeout_ctx) wpa_printf(MSG_DEBUG, "nl80211: Scan timeout - try to abort it"); #ifdef CONFIG_DRIVER_NL80211_QCA if (drv->vendor_scan_cookie && - nl80211_abort_vendor_scan(drv, drv->vendor_scan_cookie) == 0) { - drv->vendor_scan_cookie = 0; + nl80211_abort_vendor_scan(drv, drv->vendor_scan_cookie) == 0) return; - } #endif /* CONFIG_DRIVER_NL80211_QCA */ if (!drv->vendor_scan_cookie && nl80211_abort_scan(drv->first_bss) == 0)