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 b91d6a7e87d0..f08caa45c8aa 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 @@ -2067,30 +2067,31 @@ lim_handle_bss_color_change_ie(struct mac_context *mac_ctx, /* handle bss color change IE */ if (LIM_IS_AP_ROLE(session) && - session->he_op.bss_col_disabled) { + session->he_op.bss_col_disabled && + session->he_bss_color_change.new_color) { + pe_debug("countdown: %d, new_color: %d", + session->he_bss_color_change.countdown, + session->he_bss_color_change.new_color); if (session->he_bss_color_change.countdown > 0) { 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); - } + session->he_op.bss_col_disabled = 0; + session->he_op.bss_color = + session->he_bss_color_change.new_color; + session->he_bss_color_change.new_color = 0; + 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); } - lim_send_bss_color_change_ie_update(mac_ctx, session); } }