diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c index 24d0ca76a7c8..a3613fd8c20c 100644 --- a/core/mac/src/pe/lim/lim_api.c +++ b/core/mac/src/pe/lim/lim_api.c @@ -2230,6 +2230,14 @@ pe_disconnect_callback(struct mac_context *mac, uint8_t vdev_id, return QDF_STATUS_E_FAILURE; } + if (!((session->limMlmState == eLIM_MLM_LINK_ESTABLISHED_STATE) && + (session->limSmeState != eLIM_SME_WT_DISASSOC_STATE) && + (session->limSmeState != eLIM_SME_WT_DEAUTH_STATE))) { + pe_info("Cannot handle in mlmstate %d sme state %d as vdev_id:%d is not in connected state", + session->limMlmState, session->limSmeState, vdev_id); + return QDF_STATUS_SUCCESS; + } + if (deauth_disassoc_frame && deauth_disassoc_frame_len > SIR_MAC_MIN_IE_LEN) { lim_extract_ies_from_deauth_disassoc(session,