ソースを参照

qcacmn: Avoid race condtion in wlan_serialization_pdev_scan_status

wlan_serialization_pdev_scan_status is used to check whether
there is scan cmd in active or pending list,  don't need to
check details of each node in list.

While checking details of a node in list by wpa_supplicant,
the node may be removed by mc thread in race condition.

Change-Id: I019869c23ebb7d6e157babf5ad6eaf0668ff842a
CRs-Fixed: 2268619
Jianmin Zhu 7 年 前
コミット
480210436f

+ 2 - 7
umac/cmn_services/serialization/src/wlan_serialization_api.c

@@ -303,13 +303,8 @@ wlan_serialization_pdev_scan_status(struct wlan_objmgr_pdev *pdev)
 	struct wlan_serialization_pdev_priv_obj *ser_pdev_obj =
 		wlan_serialization_get_pdev_priv_obj(pdev);
 
-	cmd_in_active =
-	wlan_serialization_is_cmd_in_pdev_list(
-			pdev, &ser_pdev_obj->active_scan_list);
-
-	cmd_in_pending =
-	wlan_serialization_is_cmd_in_pdev_list(
-			pdev, &ser_pdev_obj->pending_scan_list);
+	cmd_in_active = !qdf_list_empty(&ser_pdev_obj->active_scan_list);
+	cmd_in_pending = !qdf_list_empty(&ser_pdev_obj->pending_scan_list);
 
 	return wlan_serialization_is_cmd_in_active_pending(
 			cmd_in_active, cmd_in_pending);