]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
wpa_supplicant: Fix frequency config for VHT/HE cases
authorMarkus Theil <markus.theil@tu-ilmenau.de>
Wed, 14 Oct 2020 19:31:15 +0000 (21:31 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 16 Oct 2020 09:50:17 +0000 (12:50 +0300)
Fix compilation without CONFIG_P2P and only set secondary channel seg
idx if we use a mode supporting a sec channel for VHT/HE.

Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
wpa_supplicant/ap.c

index bac79b2e430e9979693c492a0de7b87bae62f2f0..a4892e788709b52b4a9eba07c25bdddfb7d7af08 100644 (file)
@@ -52,8 +52,8 @@ static void wpas_conf_ap_vht(struct wpa_supplicant *wpa_s,
 #ifdef CONFIG_P2P
        u8 center_chan = 0;
        u8 channel = conf->channel;
-       u8 freq_seg_idx;
 #endif /* CONFIG_P2P */
+       u8 freq_seg_idx;
 
        if (!conf->secondary_channel)
                goto no_vht;
@@ -62,24 +62,28 @@ static void wpas_conf_ap_vht(struct wpa_supplicant *wpa_s,
        if (ssid->max_oper_chwidth)
                hostapd_set_oper_chwidth(conf, ssid->max_oper_chwidth);
 
-       ieee80211_freq_to_chan(ssid->vht_center_freq2,
-                              &freq_seg_idx);
-       hostapd_set_oper_centr_freq_seg1_idx(conf, freq_seg_idx);
+       if (hostapd_get_oper_chwidth(conf) == CHANWIDTH_80P80MHZ) {
+               ieee80211_freq_to_chan(ssid->vht_center_freq2,
+                                      &freq_seg_idx);
+               hostapd_set_oper_centr_freq_seg1_idx(conf, freq_seg_idx);
+       }
 
        if (!ssid->p2p_group) {
-               if (!ssid->vht_center_freq1 ||
-                   hostapd_get_oper_chwidth(conf) == CHANWIDTH_USE_HT)
+               if (!ssid->vht_center_freq1)
                        goto no_vht;
                ieee80211_freq_to_chan(ssid->vht_center_freq1,
                                       &freq_seg_idx);
                hostapd_set_oper_centr_freq_seg0_idx(conf, freq_seg_idx);
-               wpa_printf(MSG_DEBUG, "VHT seg0 index %d for AP",
-                          hostapd_get_oper_centr_freq_seg0_idx(conf));
+
+               wpa_printf(MSG_DEBUG,
+                          "VHT seg0 index %d and seg1 index %d for AP",
+                          hostapd_get_oper_centr_freq_seg0_idx(conf),
+                          hostapd_get_oper_centr_freq_seg1_idx(conf));
                return;
        }
 
 #ifdef CONFIG_P2P
-       switch (conf->vht_oper_chwidth) {
+       switch (hostapd_get_oper_chwidth(conf)) {
        case CHANWIDTH_80MHZ:
        case CHANWIDTH_80P80MHZ:
                center_chan = wpas_p2p_get_vht80_center(wpa_s, mode, channel);