P2P: Do not perform P2P GO CS in some cases

A P2P GO channel switch should not be triggered in all cases that
require channel list update. Specifically, a P2P GO CS should not
be triggered in case that the P2P GO state changed or in case that
that the P2P GO has just completed a CS.

To fix this, add reason code to wpas_p2p_channel_list_update() and
trigger CS flow only for the relevant cases.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
Ilan Peer 2015-07-27 22:24:27 +03:00 committed by Jouni Malinen
parent dae4c82c95
commit 3a8f008a24
4 changed files with 48 additions and 13 deletions

View file

@ -3015,7 +3015,7 @@ static void wpa_supplicant_update_channel_list(
wpa_supplicant_req_scan(wpa_s, 0, 0);
}
wpas_p2p_update_channel_list(wpa_s);
wpas_p2p_update_channel_list(wpa_s, WPAS_P2P_CHANNEL_UPDATE_DRIVER);
}
@ -3154,7 +3154,8 @@ static void wpa_supplicant_notify_avoid_freq(struct wpa_supplicant *wpa_s,
* The update channel flow will also take care of moving a GO
* from the unsafe frequency if needed.
*/
wpas_p2p_update_channel_list(wpa_s);
wpas_p2p_update_channel_list(wpa_s,
WPAS_P2P_CHANNEL_UPDATE_AVOID);
}
#endif /* CONFIG_P2P */