Skip normal scan when PNO is already in progress
Scan request failures are observed in wpa_supplicant debug log when Android framework starts PNO scan in driver via ctrl interface command 'set pno 1' and wpa_supplicant also tries to issue a scan request after PNO has started in the driver. Some drivers may reject a normal scan request when PNO is already in progress. wpa_supplicant should consider PNO status before issuing start scan request to the driver. Otherwise, wpa_supplicant will get failures from driver for the scan request and it will end up rescheduling scan request in periodic interval and get a start scan request failure for each attempt. In order to avoid unnecessary scan attempt when PNO scan is already running, PNO status is checked before issuing scan request to driver. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
a2d6365760
commit
dd271857a5
2 changed files with 6 additions and 0 deletions
|
@ -3236,6 +3236,7 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
|
|||
data->driver_gtk_rekey.replay_ctr);
|
||||
break;
|
||||
case EVENT_SCHED_SCAN_STOPPED:
|
||||
wpa_s->pno = 0;
|
||||
wpa_s->sched_scanning = 0;
|
||||
wpa_supplicant_notify_scanning(wpa_s, 0);
|
||||
|
||||
|
|
|
@ -521,6 +521,11 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
|
|||
size_t max_ssids;
|
||||
enum wpa_states prev_state;
|
||||
|
||||
if (wpa_s->pno) {
|
||||
wpa_dbg(wpa_s, MSG_DEBUG, "Skip scan - PNO is in progress");
|
||||
return;
|
||||
}
|
||||
|
||||
if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED) {
|
||||
wpa_dbg(wpa_s, MSG_DEBUG, "Skip scan - interface disabled");
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue