X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=wpa_supplicant%2Fevents.c;fp=wpa_supplicant%2Fevents.c;h=46da7709e2a12b0135517bd6273d4deae8a6ec7a;hp=6f8fc8117f1a2a288a8cf505fec72a319a103a7a;hb=ebf59eb549827ecfb7a42281721a1af9cfa0d7a1;hpb=746e5c2565e28a8659052e63012647bda4cc6443 diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 6f8fc81..46da770 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -3219,14 +3219,16 @@ static void wpa_supplicant_update_channel_list( free_hw_features(ifs); ifs->hw.modes = wpa_drv_get_hw_feature_data( ifs, &ifs->hw.num_modes, &ifs->hw.flags); - } - /* Restart sched_scan with updated channel list */ - if (wpa_s->sched_scanning) { - wpa_dbg(wpa_s, MSG_DEBUG, - "Channel list changed restart sched scan."); - wpa_supplicant_cancel_sched_scan(wpa_s); - wpa_supplicant_req_scan(wpa_s, 0, 0); + /* Restart PNO/sched_scan with updated channel list */ + if (ifs->pno) { + wpas_stop_pno(ifs); + wpas_start_pno(ifs); + } else if (ifs->sched_scanning && !ifs->pno_sched_pending) { + wpa_dbg(ifs, MSG_DEBUG, + "Channel list changed - restart sched_scan"); + wpas_scan_restart_sched_scan(ifs); + } } wpas_p2p_update_channel_list(wpa_s, WPAS_P2P_CHANNEL_UPDATE_DRIVER);