Parcourir la source

qcacld-3.0: Remove bss peer in case of vdev stop response failure

In case of failure in vdev stop response from FW, Along with
triggering SSR call the del_bss_response so that FW can clear
the bss peer.

Change-Id: Ibbf43f15796a9a13f922091d49fa6a22838aeaaf
CRs-Fixed: 2498497
Bala Venkatesh il y a 5 ans
Parent
commit
961c9b8cba
1 fichiers modifiés avec 6 ajouts et 10 suppressions
  1. 6 10
      core/wma/src/wma_dev_if.c

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

@@ -2560,10 +2560,10 @@ __wma_handle_vdev_stop_rsp(wmi_vdev_stopped_event_fixed_param *resp_event)
 
 		status = wma_remove_bss_peer(wma, pdev, resp_event->vdev_id,
 					     params);
-		if (status != 0) {
+		if (status) {
 			WMA_LOGE("%s Del bss failed vdev:%d", __func__,
 				 resp_event->vdev_id);
-			wma_cleanup_target_req_param(req_msg);
+			wma_send_vdev_down_bss(wma, req_msg);
 			goto free_req_msg;
 		}
 
@@ -4023,19 +4023,15 @@ void wma_vdev_resp_timer(void *data)
 		 * Trigger host crash if the flag is set or if the timeout
 		 * is not due to fw down
 		 */
-		if (wma_crash_on_fw_timeout(wma->fw_timeout_crash) == true) {
+		if (wma_crash_on_fw_timeout(wma->fw_timeout_crash))
 			wma_trigger_recovery_assert_on_fw_timeout(
 				WMA_DELETE_BSS_REQ);
-			wma_cleanup_target_req_param(tgt_req);
-			goto free_tgt_req;
-		}
 
 		status = wma_remove_bss_peer(wma, pdev, tgt_req->vdev_id,
 					     params);
-		if (status != 0) {
-			WMA_LOGE("Del BSS failed vdev_id:%d", tgt_req->vdev_id);
-			wma_cleanup_target_req_param(tgt_req);
-			goto free_tgt_req;
+		if (status) {
+			WMA_LOGE("Del BSS failed call del bss response vdev_id:%d", tgt_req->vdev_id);
+			wma_send_vdev_down_bss(wma, tgt_req);
 		}
 
 		if (wmi_service_enabled(wma->wmi_handle,