Fix determining mode for 6 GHz band when using hw_mode=any
When 6 GHz band is specified and hw_mode parameter is set to any,
hostapd_determine_mode() may determine the wrong mode because there are
two hw modes (5 GHz and 6 GHz) with HOSTAPD_MODE_IEEE80211A. This will
cause 6 GHz AP to fail to start. Fix this by adding a check similar to
the changes in commit 99cd453720
("hw_feature: Correctly select mode
in case of the 6 GHz band") into hostapd_determine_mode().
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
5b568b21ae
commit
f54ce74335
1 changed files with 5 additions and 1 deletions
|
@ -1003,7 +1003,7 @@ static int hostapd_is_usable_chans(struct hostapd_iface *iface)
|
|||
|
||||
static void hostapd_determine_mode(struct hostapd_iface *iface)
|
||||
{
|
||||
int i;
|
||||
int i, chan;
|
||||
enum hostapd_hw_mode target_mode;
|
||||
|
||||
if (iface->current_mode ||
|
||||
|
@ -1022,6 +1022,10 @@ static void hostapd_determine_mode(struct hostapd_iface *iface)
|
|||
|
||||
mode = &iface->hw_features[i];
|
||||
if (mode->mode == target_mode) {
|
||||
if (iface->freq > 0 &&
|
||||
!hw_mode_get_channel(mode, iface->freq, &chan))
|
||||
continue;
|
||||
|
||||
iface->current_mode = mode;
|
||||
iface->conf->hw_mode = mode->mode;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue