From 188f83f47a13d488aed96c1286db303b5e2f3089 Mon Sep 17 00:00:00 2001 From: Shaofu Date: Fri, 7 Nov 2025 07:08:24 +0000 Subject: [PATCH] Fixed 802.11r OTD roaming failure Bug 5578305 Change-Id: I8db3a30e3830423212c334a9f4c8b7efdde1d480 Signed-off-by: Shaofu Signed-off-by: Narayana Reddy P Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3485386 Reviewed-by: Ashutosh Jha GVS: buildbot_gerritrpt Reviewed-by: Shobek Attupurath --- .../wireless/realtek/rtl8852ce/core/rtw_mlme.c | 2 +- .../wireless/realtek/rtl8852ce/core/rtw_wnm.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/realtek/rtl8852ce/core/rtw_mlme.c b/drivers/net/wireless/realtek/rtl8852ce/core/rtw_mlme.c index 74bced83..50c95cc7 100644 --- a/drivers/net/wireless/realtek/rtl8852ce/core/rtw_mlme.c +++ b/drivers/net/wireless/realtek/rtl8852ce/core/rtw_mlme.c @@ -3974,7 +3974,7 @@ struct wlan_network *rtw_select_roaming_candidate(struct mlme_priv *mlme) RTW_INFO("%s: %s("MAC_FMT", ch:%u-%s)\n", __FUNCTION__, candidate->network.Ssid.Ssid, MAC_ARG(candidate->network.MacAddress), candidate->network.Configuration.DSConfig, - rtw_band_str(candidate->network.Configuration.DSConfig)); + rtw_band_str(candidate->network.Configuration.Band)); mlme->roam_network = candidate; if (_rtw_memcmp(candidate->network.MacAddress, mlme->roam_tgt_addr, ETH_ALEN) == _TRUE) diff --git a/drivers/net/wireless/realtek/rtl8852ce/core/rtw_wnm.c b/drivers/net/wireless/realtek/rtl8852ce/core/rtw_wnm.c index 54056353..edb52821 100644 --- a/drivers/net/wireless/realtek/rtl8852ce/core/rtw_wnm.c +++ b/drivers/net/wireless/realtek/rtl8852ce/core/rtw_wnm.c @@ -1506,7 +1506,16 @@ void rtw_wnm_start_clnt_join(_adapter *padapter, struct _ADAPTER_LINK *al) struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); #ifdef CONFIG_RTW_80211R struct ft_roam_info *pft_roam = &(pmlmepriv->ft_roam); +#endif + /* update beacon_key */ + if (pmlmepriv->roam_network->bcn_keys_valid) + _rtw_memcpy(&al->mlmepriv.cur_beacon_keys, + &pmlmepriv->roam_network->bcn_keys, sizeof(struct beacon_keys)); + else + RTW_WARN("WNM : invalid beacon key!!\n"); + +#ifdef CONFIG_RTW_80211R if (rtw_ft_otd_roam(padapter)) { pmlmeinfo->state = WIFI_FW_AUTH_SUCCESS | WIFI_FW_STATION_STATE; pft_roam->ft_event.ies = @@ -1523,13 +1532,6 @@ void rtw_wnm_start_clnt_join(_adapter *padapter, struct _ADAPTER_LINK *al) return; } #endif - /* update beacon_key */ - if (pmlmepriv->roam_network->bcn_keys_valid) - _rtw_memcpy(&al->mlmepriv.cur_beacon_keys, - &pmlmepriv->roam_network->bcn_keys, sizeof(struct beacon_keys)); - else - RTW_WARN("WNM : invalid beacon key!!\n"); - pmlmeinfo->state = WIFI_FW_AUTH_NULL | WIFI_FW_STATION_STATE; start_clnt_auth(padapter); }