From: Masashi Honma Date: Tue, 26 Jul 2016 11:45:40 +0900 Subject: [PATCH] mesh: Set correct secondary channel offset if HT40 is disabled Previously, secondary channel offset could be non zero even though disable_ht40=1. This patch fixes it. Signed-off-by: Masashi Honma --- --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -1901,20 +1901,27 @@ void ibss_mesh_setup_freq(struct wpa_sup break; } } +#ifdef CONFIG_HT_OVERRIDES + if (ssid->disable_ht40) + ht40 = 0; +#endif /* CONFIG_HT_OVERRIDES */ - /* Find secondary channel */ - for (i = 0; i < mode->num_channels; i++) { - sec_chan = &mode->channels[i]; - if (sec_chan->chan == channel + ht40 * 4) - break; - sec_chan = NULL; - } - if (!sec_chan) - return; + if (ht40) { + /* Find secondary channel */ + for (i = 0; i < mode->num_channels; i++) { + sec_chan = &mode->channels[i]; + if (sec_chan->chan == channel + ht40 * 4) + break; + sec_chan = NULL; + } + if (!sec_chan) + return; - /* Check secondary channel flags */ - if (sec_chan->flag & (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR)) - return; + /* Check secondary channel flags */ + if (sec_chan->flag & + (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR)) + return; + } freq->channel = pri_chan->chan; @@ -1930,6 +1937,7 @@ void ibss_mesh_setup_freq(struct wpa_sup freq->sec_channel_offset = 1; break; default: + freq->sec_channel_offset = 0; break; }