[PATCH] nl80211: Fix stale assoc_freq causing WPA3 cross-band roaming failure
Shelley Yang
shelley.yang at infineon.com
Tue Jun 16 01:34:16 PDT 2026
When driver BSS selection is enabled, params->freq.freq is 0 in
nl80211_connect_common(). Commit 6f6f9a941c2a removed the else branch
that resets drv->assoc_freq to 0 in this case, leaving it with the
previous BSS frequency. During cross-band roaming, nl80211_get_assoc_freq()
returns the stale value, causing send_mlme() to transmit SAE
Authentication frames on the wrong channel and roaming fails.
Restore the else branch to reset drv->assoc_freq = 0 when
params->freq.freq is not specified.
Fixes: 6f6f9a941c2a ("nl80211: Set assoc_freq for non-AP MLD")
Signed-off-by: Shelley Yang <shelley.yang at infineon.com>
---
src/drivers/driver_nl80211.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 469a54229..b1f433c8d 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -7558,6 +7558,8 @@ static int nl80211_connect_common(struct wpa_driver_nl80211_data *drv,
}
drv->assoc_freq = params->freq.freq;
+ } else {
+ drv->assoc_freq = 0;
}
if (params->freq_hint) {
--
2.25.1
More information about the Hostap
mailing list