diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 2162ed7f1ac84..785be73e25209 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1247,8 +1247,7 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info, if (!params) { WMA_LOGE("%s: channel switch params is NULL for vdev %d", __func__, resp_event->vdev_id); - policy_mgr_set_do_hw_mode_change_flag( - wma->psoc, false); + policy_mgr_set_do_hw_mode_change_flag(wma->psoc, false); return -EINVAL; } @@ -1267,11 +1266,12 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info, false; } #endif - if (((resp_event->resp_type == WMI_VDEV_RESTART_RESP_EVENT) && - ((iface->type == WMI_VDEV_TYPE_STA) || - (iface->type == WMI_VDEV_TYPE_MONITOR))) || - ((resp_event->resp_type == WMI_VDEV_START_RESP_EVENT) && - (iface->type == WMI_VDEV_TYPE_MONITOR))) { + if ((QDF_IS_STATUS_SUCCESS(resp_event->status) && + (resp_event->resp_type == WMI_VDEV_RESTART_RESP_EVENT) && + ((iface->type == WMI_VDEV_TYPE_STA) || + (iface->type == WMI_VDEV_TYPE_MONITOR))) || + ((resp_event->resp_type == WMI_VDEV_START_RESP_EVENT) && + (iface->type == WMI_VDEV_TYPE_MONITOR))) { /* for CSA case firmware expects phymode before ch_wd */ err = wma_set_peer_param(wma, iface->bssid, WMI_PEER_PHYMODE, iface->chanmode,