DPP: Remove dpp-listen radio work when stopping

The radio work starting may be delayed. If the DPP listen operation is
stopped before the radio work starts, the pending dpp-listen radio work
won't get cleaned up, which might lead to failing to start the next DPP
listen operation.

Issue scenario: DPP start -> dpp-listen radio work added but not started
-> DPP stop, pending radio work not cleaned up -> radio work start ->
trying to start DPP but failing because a dpp-listen work already
exists.

This commit removes the potential pending dpp-listen radio
work when DPP stops.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Chenming Huang 2021-12-13 15:57:58 +08:00 committed by Jouni Malinen
parent 3f8c83a65e
commit b26f5c0fe3

View file

@ -1021,6 +1021,7 @@ void wpas_dpp_listen_stop(struct wpa_supplicant *wpa_s)
wpa_drv_dpp_listen(wpa_s, false); wpa_drv_dpp_listen(wpa_s, false);
wpa_s->dpp_listen_freq = 0; wpa_s->dpp_listen_freq = 0;
wpas_dpp_listen_work_done(wpa_s); wpas_dpp_listen_work_done(wpa_s);
radio_remove_works(wpa_s, "dpp-listen", 0);
} }