소스 검색

qcacld-3.0: Explicitly send vdev_stop_rsp in SSR

VDEV destroy timed out happens in SSR when device
has prior active MLO connection.
The reference for MLO MGR is not released in this
case as FW response for VDEV stop won't be received
during SSR.

Initiate VDEV stop response explicitly for the driver
to deinit MLO context.

Change-Id: I934c7161189fbceb9e0de93aad6f0f9ff45102ac
CRs-Fixed: 3286321
Aravind Kishore Sukla 2 년 전
부모
커밋
d99bf7c571
1개의 변경된 파일5개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 3
      core/wma/src/wma_dev_if.c

+ 5 - 3
core/wma/src/wma_dev_if.c

@@ -5855,10 +5855,12 @@ void wma_delete_bss(tp_wma_handle wma, uint8_t vdev_id)
 			  OL_TXQ_PAUSE_REASON_VDEV_STOP, 0);
 
 	if (wma_send_vdev_stop_to_fw(wma, vdev_id)) {
-		wma_err("Failed to send vdev stop");
-		status = QDF_STATUS_E_FAILURE;
+		struct vdev_stop_response vdev_stop_rsp = {0};
+
+		wma_err("Failed to send vdev stop to FW, explicitly invoke vdev stop rsp");
+		vdev_stop_rsp.vdev_id = vdev_id;
+		wma_handle_vdev_stop_rsp(wma, &vdev_stop_rsp);
 		qdf_atomic_set(&iface->bss_status, WMA_BSS_STATUS_STOPPED);
-		goto detach_peer;
 	}
 	wma_debug("bssid "QDF_MAC_ADDR_FMT" vdev_id %d",
 		  QDF_MAC_ADDR_REF(bssid.bytes), vdev_id);