浏览代码

qcacld-3.0: Add sanity check before stopping timer

Sometimes fw sends roam event with RSO status 7, it does not need
host driver trigger in function target_if_cm_roam_send_stop. When
this scenario happens, driver tries to stop the timer which does
not started and dumps wrong info.

Change-Id: I82f723bb8e8c5b6108caff48a9189eeaf2686a2c
CRs-Fixed: 3261664
Paul Zhang 2 年之前
父节点
当前提交
66cddca488
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      components/target_if/connection_mgr/src/target_if_cm_roam_offload.c

+ 6 - 0
components/target_if/connection_mgr/src/target_if_cm_roam_offload.c

@@ -1256,6 +1256,12 @@ target_if_stop_rso_stop_timer(struct roam_offload_roam_event *roam_event)
 		return QDF_STATUS_E_INVAL;
 	}
 
+	if (!qdf_atomic_test_bit(RSO_STOP_RESPONSE_BIT,
+				 &vdev_rsp->rsp_status)) {
+		roam_event->rso_timer_stopped = true;
+		return QDF_STATUS_SUCCESS;
+	}
+
 	if ((roam_event->reason == ROAM_REASON_RSO_STATUS &&
 	     (roam_event->notif == CM_ROAM_NOTIF_SCAN_MODE_SUCCESS ||
 	      roam_event->notif == CM_ROAM_NOTIF_SCAN_MODE_FAIL)) ||