diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 2121bf014..6e6b011ab 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -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); diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c index da827bd7e..ed8fa3045 100644 --- a/wpa_supplicant/scan.c +++ b/wpa_supplicant/scan.c @@ -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;