浏览代码

qcacld-3.0: Send VDEV STOP if host fails in vdev start resp

In Vdev start response if due to some reason host fails it doesnt
send vdev stop to firmware to mark vdev as inactive. Due to this
when delete vdev is received by firmware it crashes.

To fix this send VDEV STOP to firmware if vdev start response fails
in host.

Change-Id: I170265069d7e92b091397a63972575bfe7c9ef6d
CRs-Fixed: 2038379
Abhishek Singh 8 年之前
父节点
当前提交
34c15647ed
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      core/wma/src/wma_dev_if.c

+ 6 - 0
core/wma/src/wma_dev_if.c

@@ -742,6 +742,12 @@ static void wma_vdev_start_rsp(tp_wma_handle wma,
 	}
 	add_bss->smpsMode = host_map_smps_mode(resp_event->smps_mode);
 send_fail_resp:
+	/* Send vdev stop if vdev start was success */
+	if ((add_bss->status != QDF_STATUS_SUCCESS) &&
+	   !resp_event->status)
+		if (wma_send_vdev_stop_to_fw(wma, resp_event->vdev_id))
+			WMA_LOGE("%s: %d Failed to send vdev stop", __func__, __LINE__);
+
 	WMA_LOGD("%s: Sending add bss rsp to umac(vdev %d status %d)",
 		 __func__, resp_event->vdev_id, add_bss->status);
 	wma_send_msg(wma, WMA_ADD_BSS_RSP, (void *)add_bss, 0);