From fc9c6cc743bd5e337a44f47ce6b44e2209109f4f Mon Sep 17 00:00:00 2001 From: Vevek Venkatesan Date: Mon, 7 Jun 2021 15:57:08 +0530 Subject: [PATCH] qcacld-3.0: defer sending STA_CONNECT to IPA after key install Unlike wpa2, in wpa3 roaming scenario, roaming is not fully offloaded to FW, EAPOL handshake and key install are done from host, in current design during assoc completion handler, it sends STA_CONNECT event to IPA and IPA gets hung waiting for buffer replenish from FW and FW is waiting for current thread to return, this causes deadlock, so defer sending STA_CONNECT event to IPA after EAPOL handshake and key install for all the secure connections, hence IPA HW is ready to process the STA_CONNECT event, in this case. Change-Id: I19961cdd303ccef13621c7a20867ba852342a526 CRs-Fixed: 2958313 --- core/hdd/src/wlan_hdd_assoc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 88b8ab1bfe8d..ca2eb53f7395 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -2673,6 +2673,15 @@ static int hdd_change_sta_state_authenticated(struct hdd_adapter *adapter, timeout); } + if (ucfg_ipa_is_enabled() && !hddstactx->conn_info.is_authenticated && + adapter->device_mode == QDF_STA_MODE && + hddstactx->conn_info.auth_type != eCSR_AUTH_TYPE_NONE && + hddstactx->conn_info.auth_type != eCSR_AUTH_TYPE_OPEN_SYSTEM && + hddstactx->conn_info.auth_type != eCSR_AUTH_TYPE_SHARED_KEY) + ucfg_ipa_wlan_evt(adapter->hdd_ctx->pdev, adapter->dev, + adapter->device_mode, adapter->vdev_id, + WLAN_IPA_STA_CONNECT, mac_addr); + return qdf_status_to_os_return(status); } @@ -3036,7 +3045,7 @@ hdd_association_completion_handler(struct hdd_adapter *adapter, ft_carrier_on = true; } - if (ucfg_ipa_is_enabled()) + if (ucfg_ipa_is_enabled() && !roam_info->fAuthRequired) ucfg_ipa_wlan_evt(hdd_ctx->pdev, adapter->dev, adapter->device_mode, adapter->vdev_id,