Skip to content

Commit 86af062

Browse files
Manikanta Pubbisettyjmberg-intel
authored andcommitted
mac80211: Reset MBSSID parameters upon connection
Currently MBSSID parameters in struct ieee80211_bss_conf are not reset upon connection. This could be problematic with some drivers in a scenario where the device first connects to a non-transmit BSS and then connects to a transmit BSS of a Multi BSS AP. The MBSSID parameters which are set after connecting to a non-transmit BSS will not be reset and the same parameters will be passed on to the driver during the subsequent connection to a transmit BSS of a Multi BSS AP. For example, firmware running on the ath11k device uses the Multi BSS data for tracking the beacon of a non-transmit BSS and reports the driver when there is a beacon miss. If we do not reset the MBSSID parameters during the subsequent connection to a transmit BSS, then the driver would have wrong MBSSID data and FW would be looking for an incorrect BSSID in the MBSSID beacon of a Multi BSS AP and reports beacon loss leading to an unstable connection. Reset the MBSSID parameters upon every connection to solve this problem. Fixes: 78ac51f ("mac80211: support multi-bssid") Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> Link: https://lore.kernel.org/r/20220428052744.27040-1-quic_mpubbise@quicinc.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
1 parent e847ffe commit 86af062

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

net/mac80211/mlme.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3657,6 +3657,12 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
36573657
cbss->transmitted_bss->bssid);
36583658
bss_conf->bssid_indicator = cbss->max_bssid_indicator;
36593659
bss_conf->bssid_index = cbss->bssid_index;
3660+
} else {
3661+
bss_conf->nontransmitted = false;
3662+
memset(bss_conf->transmitter_bssid, 0,
3663+
sizeof(bss_conf->transmitter_bssid));
3664+
bss_conf->bssid_indicator = 0;
3665+
bss_conf->bssid_index = 0;
36603666
}
36613667

36623668
/*

0 commit comments

Comments
 (0)