From 437bf10f67a82998fcae2692c82009da8c159da4 Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Thu, 1 Jul 2021 12:14:18 +0530 Subject: [PATCH] qcacld-3.0: Initiate WLAN_VDEV_SM_EV_START only in init state Initiate WLAN_VDEV_SM_EV_START for connect only in INIT state as if its not in init state the VDEV SM is not cleaned up, which needs to be debugged. Sending WLAN_VDEV_SM_EV_START can cause pe session leak if the event is handled by VDEV SM and return success. This can eventually lead to all the pe session in used state. Change-Id: I8245a7985bb08b04008b4f833f9474947c1bf57b CRs-Fixed: 2982070 --- core/mac/src/pe/lim/lim_process_sme_req_messages.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index 4abe07b5f966..526478682b22 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -1082,6 +1082,16 @@ static QDF_STATUS lim_send_join_req(struct pe_session *session, { QDF_STATUS status; + /* Continue connect only if Vdev is in INIT state */ + status = wlan_vdev_mlme_is_init_state(session->vdev); + if (QDF_IS_STATUS_ERROR(status)) { + pe_err("Vdev %d not in int state cur state %d substate %d", + session->vdev_id, + wlan_vdev_mlme_get_state(session->vdev), + wlan_vdev_mlme_get_substate(session->vdev)); + return status; + } + status = mlme_set_assoc_type(session->vdev, VDEV_ASSOC); if (QDF_IS_STATUS_ERROR(status)) return status;