cfg80211: retrieve S1G operating channel number

[ Upstream commit e847ffe2d1 ]

When retrieving the S1G channel number from IEs, we should retrieve
the operating channel instead of the primary channel. The S1G operation
element specifies the main channel of operation as the oper channel,
unlike for HT and HE which specify their main channel of operation as
the primary channel.

Signed-off-by: Kieran Frewen <kieran.frewen@morsemicro.com>
Signed-off-by: Bassem Dawood <bassem@morsemicro.com>
Link: https://lore.kernel.org/r/20220420041321.3788789-1-kieran.frewen@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Kieran Frewen 2022-04-20 04:13:20 +00:00 committed by Greg Kroah-Hartman
parent a1a2097861
commit 45e7d6dad2

View file

@ -1829,7 +1829,7 @@ int cfg80211_get_ies_channel_number(const u8 *ie, size_t ielen,
if (tmp && tmp->datalen >= sizeof(struct ieee80211_s1g_oper_ie)) { if (tmp && tmp->datalen >= sizeof(struct ieee80211_s1g_oper_ie)) {
struct ieee80211_s1g_oper_ie *s1gop = (void *)tmp->data; struct ieee80211_s1g_oper_ie *s1gop = (void *)tmp->data;
return s1gop->primary_ch; return s1gop->oper_ch;
} }
} else { } else {
tmp = cfg80211_find_elem(WLAN_EID_DS_PARAMS, ie, ielen); tmp = cfg80211_find_elem(WLAN_EID_DS_PARAMS, ie, ielen);