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 d086b7aec81d..c43ba842bf2d 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 @@ -5714,10 +5714,8 @@ static void obss_color_collision_process_color_disable(tpAniSirGlobal mac_ctx, qdf_mem_zero(&beacon_params, sizeof(beacon_params)); beacon_params.paramChangeBitmap |= PARAM_BSS_COLOR_CHANGED; session->he_op.bss_col_disabled = 1; - session->he_bss_color_change.new_color = 0; - session->he_op.bss_color = 0; - beacon_params.bss_color = 0; beacon_params.bss_color_disabled = 1; + beacon_params.bss_color = session->he_op.bss_color; if (sch_set_fixed_beacon_fields(mac_ctx, session) != eSIR_SUCCESS) { @@ -5862,8 +5860,8 @@ void lim_process_set_he_bss_color(tpAniSirGlobal mac_ctx, uint32_t *msg_buf) session_entry->he_bss_color_change.countdown = BSS_COLOR_SWITCH_COUNTDOWN; session_entry->he_bss_color_change.new_color = bss_color->bss_color; - beacon_params.bss_color_disabled = - session_entry->he_op.bss_col_disabled; + beacon_params.bss_color_disabled = 1; + beacon_params.bss_color = session_entry->he_op.bss_color; session_entry->bss_color_changing = 1; if (sch_set_fixed_beacon_fields(mac_ctx, session_entry) != diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c index c2b30d24739b..09c9bd975ec2 100644 --- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c @@ -2515,6 +2515,8 @@ static void lim_handle_bss_color_change_ie(tpAniSirGlobal mac_ctx, tpPESession session) { + tUpdateBeaconParams beacon_params; + /* handle bss color change IE */ if (LIM_IS_AP_ROLE(session) && session->he_op.bss_col_disabled) { @@ -2522,10 +2524,19 @@ lim_handle_bss_color_change_ie(tpAniSirGlobal mac_ctx, session->he_bss_color_change.countdown--; } else { session->bss_color_changing = 0; + qdf_mem_zero(&beacon_params, sizeof(beacon_params)); if (session->he_bss_color_change.new_color != 0) { session->he_op.bss_col_disabled = 0; session->he_op.bss_color = session->he_bss_color_change.new_color; + beacon_params.paramChangeBitmap |= + PARAM_BSS_COLOR_CHANGED; + beacon_params.bss_color_disabled = 0; + beacon_params.bss_color = + session->he_op.bss_color; + lim_send_beacon_params(mac_ctx, + &beacon_params, + session); lim_send_obss_color_collision_cfg(mac_ctx, session, OBSS_COLOR_COLLISION_DETECTION);