From 70fc6c603cb7fb91a51c4ff38cd946f77b7bba68 Mon Sep 17 00:00:00 2001 From: Himanshu Batra Date: Tue, 24 Nov 2020 15:50:02 +0530 Subject: [PATCH] qcacmn: Support connect/disconnect request due to cfg change Add enum to indicate the connect or disconnect request initiated due to a config change. Change-Id: I68e058f37f00b548076874c97903dc78d4f4cb25 CRs-Fixed: 2826533 --- umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c | 3 ++- umac/mlme/connection_mgr/core/src/wlan_cm_util.c | 1 + .../connection_mgr/dispatcher/inc/wlan_cm_public_struct.h | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c b/umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c index 42c109fec9..539a1931fd 100644 --- a/umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c +++ b/umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c @@ -517,7 +517,8 @@ cm_handle_discon_req_in_non_connected_state(struct cnx_mgr *cm_ctx, * been received, hence skip the non-osif disconnect request. */ if (cur_state == WLAN_CM_S_CONNECTING && - cm_req->req.source != CM_OSIF_DISCONNECT) { + (cm_req->req.source != CM_OSIF_DISCONNECT && + cm_req->req.source != CM_OSIF_CFG_DISCONNECT)) { mlme_info("Vdev %d ignore disconnect req from source %d in state %d", wlan_vdev_get_id(cm_ctx->vdev), cm_req->req.source, cm_state_substate); diff --git a/umac/mlme/connection_mgr/core/src/wlan_cm_util.c b/umac/mlme/connection_mgr/core/src/wlan_cm_util.c index 9d97ba3e30..b5125ad2d1 100644 --- a/umac/mlme/connection_mgr/core/src/wlan_cm_util.c +++ b/umac/mlme/connection_mgr/core/src/wlan_cm_util.c @@ -27,6 +27,7 @@ static uint32_t cm_get_prefix_for_cm_id(enum wlan_cm_source source) { switch (source) { case CM_OSIF_CONNECT: case CM_ROAMING: + case CM_OSIF_CFG_CONNECT: return CONNECT_REQ_PREFIX; default: return DISCONNECT_REQ_PREFIX; diff --git a/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h b/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h index c2c05a84af..001968053b 100644 --- a/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h +++ b/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h @@ -119,6 +119,8 @@ struct wlan_fils_con_info { * @CM_INTERNAL_DISCONNECT: Internal disconnect initiated by Connection manager * on receiving the back to back commands * @CM_ROAM_DISCONNECT: Disconnect req due to HO failure + * @CM_OSIF_CFG_CONNECT: Connect request initiated due to config change + * @CM_OSIF_CFG_DISCONNECT: Disconnect request initiated due to config change * @CM_SOURCE_MAX: max value of connection manager source * @CM_SOURCE_INVALID: Invalid connection manager req source */ @@ -131,6 +133,8 @@ enum wlan_cm_source { CM_MLME_DISCONNECT, CM_INTERNAL_DISCONNECT, CM_ROAM_DISCONNECT, + CM_OSIF_CFG_CONNECT, + CM_OSIF_CFG_DISCONNECT, CM_SOURCE_MAX, CM_SOURCE_INVALID = CM_SOURCE_MAX, };