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 <jouni@qca.qualcomm.com>
This commit is contained in:
Sunil Dutt 2017-01-25 16:36:19 +05:30 committed by Jouni Malinen
parent 6d08f23f0a
commit f593b6c11d

View file

@ -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"); wpa_printf(MSG_DEBUG, "nl80211: Scan timeout - try to abort it");
#ifdef CONFIG_DRIVER_NL80211_QCA #ifdef CONFIG_DRIVER_NL80211_QCA
if (drv->vendor_scan_cookie && if (drv->vendor_scan_cookie &&
nl80211_abort_vendor_scan(drv, drv->vendor_scan_cookie) == 0) { nl80211_abort_vendor_scan(drv, drv->vendor_scan_cookie) == 0)
drv->vendor_scan_cookie = 0;
return; return;
}
#endif /* CONFIG_DRIVER_NL80211_QCA */ #endif /* CONFIG_DRIVER_NL80211_QCA */
if (!drv->vendor_scan_cookie && if (!drv->vendor_scan_cookie &&
nl80211_abort_scan(drv->first_bss) == 0) nl80211_abort_scan(drv->first_bss) == 0)