Jelajahi Sumber

qcacld-3.0: cdp: Converge stats API

Currently cdp_host_get_vdev_stats API provided
with vdev handle as its arguments, which is
directly accessed in that API. This can cause
a race-condition in access of the respective
handle if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the vdev_id which will be used to get the
respective handles and hence avoiding unwanted
access of the handle if it has been deleted.

Change-Id: I4cc959b9244f5c22dea71194c86c583cd9c2a071
CRs-Fixed: 2583358
Vevek Venkatesan 5 tahun lalu
induk
melakukan
31a38dc0df
1 mengubah file dengan 2 tambahan dan 7 penghapusan
  1. 2 7
      core/cds/src/cds_api.c

+ 2 - 7
core/cds/src/cds_api.c

@@ -2772,17 +2772,12 @@ void cds_incr_arp_stats_tx_tgt_acked(void)
 static bool
 cds_get_cdp_vdev_stats(uint8_t vdev_id, struct cdp_vdev_stats *vdev_stats)
 {
-	void *soc;
-	struct cdp_pdev *pdev;
-	struct cdp_vdev *vdev;
+	void *soc = cds_get_context(QDF_MODULE_ID_SOC);
 
 	if (!vdev_stats)
 		return false;
 
-	if (cds_get_datapath_handles(&soc, &pdev, &vdev, vdev_id))
-		return false;
-
-	if (cdp_host_get_vdev_stats(soc, vdev, vdev_stats, true))
+	if (cdp_host_get_vdev_stats(soc, vdev_id, vdev_stats, true))
 		return false;
 
 	return true;