Browse Source

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 years ago
parent
commit
34c15647ed
1 changed files with 6 additions and 0 deletions
  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);