]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Fix center segment indexes in channel switch fallback to non-5 GHz cases
authorJurijs Soloveckis <jsoloveckis@maxlinear.com>
Tue, 16 Apr 2024 11:47:36 +0000 (11:47 +0000)
committerJouni Malinen <j@w1.fi>
Sun, 21 Apr 2024 08:55:53 +0000 (11:55 +0300)
Hardcoded conversion for 5 GHz band was used, but this won't work for
other cases. Set the correct center segment indexes in channel switch
fallback for non-5GHz band.

Signed-off-by: Jurijs Soloveckis <jsoloveckis@maxlinear.com>
src/ap/hostapd.c

index 800e54501387692b9dc2242674dcc31f47f8535d..130b6ebc6b21d917a517b37c95a75a3bd96dd819 100644 (file)
@@ -4464,15 +4464,15 @@ void
 hostapd_switch_channel_fallback(struct hostapd_iface *iface,
                                const struct hostapd_freq_params *freq_params)
 {
-       int seg0_idx = 0, seg1_idx = 0;
+       u8 seg0_idx = 0, seg1_idx = 0;
        enum oper_chan_width bw = CONF_OPER_CHWIDTH_USE_HT;
 
        wpa_printf(MSG_DEBUG, "Restarting all CSA-related BSSes");
 
        if (freq_params->center_freq1)
-               seg0_idx = 36 + (freq_params->center_freq1 - 5180) / 5;
+               ieee80211_freq_to_chan(freq_params->center_freq1, &seg0_idx);
        if (freq_params->center_freq2)
-               seg1_idx = 36 + (freq_params->center_freq2 - 5180) / 5;
+               ieee80211_freq_to_chan(freq_params->center_freq2, &seg1_idx);
 
        switch (freq_params->bandwidth) {
        case 0: