diff --git a/core/cds/src/cds_concurrency.c b/core/cds/src/cds_concurrency.c index 1b645c9d0501..dea6bf2ce9a6 100644 --- a/core/cds/src/cds_concurrency.c +++ b/core/cds/src/cds_concurrency.c @@ -4134,6 +4134,8 @@ QDF_STATUS cds_update_connection_info(uint32_t vdev_id) return status; } + cds_debug("update PM connection table for vdev:%d", vdev_id); + /* add the entry */ cds_update_conc_list(conn_index, cds_get_mode(wma_conn_table_entry->type, diff --git a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c index 546e76da279b..8cc9c9371d2e 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c @@ -52,6 +52,7 @@ #include "wma_types.h" #include "cds_utils.h" #include "lim_types.h" +#include "cds_concurrency.h" #define MAX_SUPPORTED_PEERS_WEP 16 @@ -3680,6 +3681,10 @@ void lim_process_switch_channel_rsp(tpAniSirGlobal pMac, void *body) gpchangeChannelData, psessionEntry); } + /* If MCC upgrade/DBS downgrade happended during channel switch, + * the policy manager connection table needs to be updated. + */ + cds_update_connection_info(psessionEntry->smeSessionId); break; case LIM_SWITCH_CHANNEL_SAP_DFS: { @@ -3693,6 +3698,10 @@ void lim_process_switch_channel_rsp(tpAniSirGlobal pMac, void *body) */ lim_send_sme_ap_channel_switch_resp(pMac, psessionEntry, pChnlParams); + /* If MCC upgrade/DBS downgrade happended during channel switch, + * the policy manager connection table needs to be updated. + */ + cds_update_connection_info(psessionEntry->smeSessionId); } break; default: