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 526478682b22..1c78bf521c5e 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 @@ -1089,6 +1089,8 @@ static QDF_STATUS lim_send_join_req(struct pe_session *session, session->vdev_id, wlan_vdev_mlme_get_state(session->vdev), wlan_vdev_mlme_get_substate(session->vdev)); + qdf_trigger_self_recovery(session->mac_ctx->psoc, + QDF_VDEV_SM_OUT_OF_SYNC); return status; } @@ -1286,6 +1288,9 @@ __lim_process_sme_join_req(struct mac_context *mac_ctx, void *msg_buf) QDF_MAC_ADDR_REF(bss_desc->bssId), session->limSmeState); + qdf_trigger_self_recovery(mac_ctx->psoc, + QDF_VDEV_SM_OUT_OF_SYNC); + if (session->limSmeState == eLIM_SME_LINK_EST_STATE && session->smeSessionId == sme_join_req->vdev_id) { /* diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index f757ae730d2c..bd48d1f2dce2 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -623,6 +623,11 @@ QDF_STATUS sme_ser_cmd_callback(struct wlan_serialization_command *cmd, csr_release_command_buffer(mac_ctx, sme_cmd); break; case WLAN_SER_CB_ACTIVE_CMD_TIMEOUT: + sme_cmd = cmd->umac_cmd; + if (sme_cmd && (sme_cmd->command == eSmeCommandRoam || + sme_cmd->command == eSmeCommandWmStatusChange)) + qdf_trigger_self_recovery(mac_ctx->psoc, + QDF_ACTIVE_LIST_TIMEOUT); break; default: sme_debug("unknown reason code");