Fixed redundant association requests when WPA3 SAE H2E authentication fails

Bug 5578305

Change-Id: I495c2311bc79b84df1a367fa9c7b89c90888ec45
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/+/3485390
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Shobek Attupurath <sattupurath@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
This commit is contained in:
Shaofu
2025-11-07 07:11:59 +00:00
committed by mobile promotions
parent 188f83f47a
commit 1b4312e37b
2 changed files with 14 additions and 8 deletions

View File

@@ -3134,14 +3134,6 @@ void rtw_join_timeout_handler(void *ctx)
if (RTW_CANNOT_RUN(adapter_to_dvobj(adapter)))
return;
/* SAE auth timeout, send association request to force trigger disconnected by AP */
if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _TRUE) &&
(pmlmeinfo->state & WIFI_FW_AUTH_STATE) &&
rtw_sec_chk_auth_type(adapter, MLME_AUTHTYPE_SAE)) {
RTW_INFO("%s: issue_assocreq due to SAE auth timeout.\n", __FUNCTION__);
issue_assocreq(adapter);
}
_rtw_spinlock_bh(&pmlmepriv->lock);
#ifdef CONFIG_STA_CMD_DISPR
if (check_fwstate(pmlmepriv, WIFI_UNDER_LINKING) == _TRUE)

View File

@@ -11358,10 +11358,24 @@ void link_timer_hdl(void *ctx)
if (rtw_sec_chk_auth_type(padapter, MLME_AUTHTYPE_SAE)) {
RTW_INFO("link_timer_hdl: SAE auth timeout.\n");
if (pmlmeinfo->auth_status) {
if (pmlmeinfo->auth_status == WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY) {
/* Receive status 30, send association request to force trigger disconnected by AP */
RTW_INFO("%s: issue_assocreq due to receive auth frame with"
"status 30.\n", __FUNCTION__);
issue_assocreq(padapter);
#ifdef CONFIG_RTW_ANDROID
pmlmeinfo->auth_status = WLAN_STATUS_AUTH_TIMEOUT;
RTW_INFO("%s SAE WKRD auth reject, change status code: %d\n",
__func__, pmlmeinfo->auth_status);
#endif /*CONFIG_RTW_ANDROID*/
}
report_join_res(padapter, -1, pmlmeinfo->auth_status);
pmlmeinfo->auth_status = 0; /* reset */
} else {
report_join_res(padapter, -1, WLAN_STATUS_AUTH_TIMEOUT);
/* SAE auth timeout, send association request to force trigger disconnected by AP */
RTW_INFO("%s: issue_assocreq due to SAE auth timeout.\n", __FUNCTION__);
issue_assocreq(padapter);
}
return;
}