Fixed 802.11r OTD roaming failure

Bug 5578305

Change-Id: I8db3a30e3830423212c334a9f4c8b7efdde1d480
Signed-off-by: Shaofu <shaofu@realtek.com>
Signed-off-by: Narayana Reddy P <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3485386
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Shobek Attupurath <sattupurath@nvidia.com>
This commit is contained in:
Shaofu
2025-11-07 07:08:24 +00:00
committed by mobile promotions
parent cd8063b7e1
commit 188f83f47a
2 changed files with 10 additions and 8 deletions

View File

@@ -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)

View File

@@ -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);
}