diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 086c51093..9bc812d4e 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -3356,6 +3356,13 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event, wpas_p2p_disconnect(wpa_s); break; } + if (wpa_s->p2p_scan_work && wpa_s->global->p2p && + p2p_in_progress(wpa_s->global->p2p) > 1) { + /* This radio work will be cancelled, so clear P2P + * state as well. + */ + p2p_stop_find(wpa_s->global->p2p); + } #endif /* CONFIG_P2P */ if (wpa_s->wpa_state >= WPA_AUTHENTICATING) {