DPP2: Fix channel 6 inclusion for chirping with non-2 GHz interfaces
When the driver provides a list of supported modes, chan6 ended getting
added even if the 2.4 GHz mode was not included. This resulted in
incorrect behavior of trying to transmit on a not supported channel in
case of 5 GHz only radios.
Fix this by adding the channel 6 by default only if the driver does not
provide a list of supported modes. Whenever the supported modes are
available, only add this channel if it is explicitly listed as an
enabled channel.
Fixes: 8e5739c3ac
("DPP2: Check channel 6 validity before adding it to chirp channel list")
Signed-off-by: Kani M <kanisumi@codeaurora.org>
This commit is contained in:
parent
80d9756956
commit
b8d337c632
1 changed files with 1 additions and 2 deletions
|
@ -3546,7 +3546,7 @@ static void wpas_dpp_chirp_scan_res_handler(struct wpa_supplicant *wpa_s,
|
||||||
struct hostapd_hw_modes *mode;
|
struct hostapd_hw_modes *mode;
|
||||||
int c;
|
int c;
|
||||||
struct wpa_bss *bss;
|
struct wpa_bss *bss;
|
||||||
bool chan6;
|
bool chan6 = wpa_s->hw.modes == NULL;
|
||||||
|
|
||||||
if (!bi && !wpa_s->dpp_reconfig_ssid)
|
if (!bi && !wpa_s->dpp_reconfig_ssid)
|
||||||
return;
|
return;
|
||||||
|
@ -3566,7 +3566,6 @@ static void wpas_dpp_chirp_scan_res_handler(struct wpa_supplicant *wpa_s,
|
||||||
/* Preferred chirping channels */
|
/* Preferred chirping channels */
|
||||||
mode = get_mode(wpa_s->hw.modes, wpa_s->hw.num_modes,
|
mode = get_mode(wpa_s->hw.modes, wpa_s->hw.num_modes,
|
||||||
HOSTAPD_MODE_IEEE80211G, false);
|
HOSTAPD_MODE_IEEE80211G, false);
|
||||||
chan6 = mode == NULL;
|
|
||||||
if (mode) {
|
if (mode) {
|
||||||
for (c = 0; c < mode->num_channels; c++) {
|
for (c = 0; c < mode->num_channels; c++) {
|
||||||
struct hostapd_channel_data *chan = &mode->channels[c];
|
struct hostapd_channel_data *chan = &mode->channels[c];
|
||||||
|
|
Loading…
Reference in a new issue