소스 검색

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);