Эх сурвалжийг харах

qcacld-3.0: Refactor cache_station_stats_cb() API

Iterate through all the active links in adapter in the AP to
find the match for stats VDEV.

Change-Id: I1bc2ad7cf920eef5d6e840a2aec993a049159f1f
CRs-Fixed: 3521681
Vinod Kumar Pirla 2 жил өмнө
parent
commit
423620c194

+ 12 - 9
core/hdd/src/wlan_hdd_stats.c

@@ -2077,6 +2077,7 @@ static void cache_station_stats_cb(struct stats_event *ev, void *cookie)
 	struct hdd_context *hdd_ctx = adapter->hdd_ctx;
 	uint8_t vdev_id;
 	wlan_net_dev_ref_dbgid dbgid = NET_DEV_HOLD_DISPLAY_TXRX_STATS;
+	struct wlan_hdd_link_info *link_info;
 
 	if (!ev->vdev_summary_stats || !ev->vdev_chain_rssi ||
 	    !ev->peer_adv_stats || !ev->pdev_stats) {
@@ -2088,18 +2089,20 @@ static void cache_station_stats_cb(struct stats_event *ev, void *cookie)
 
 	hdd_for_each_adapter_dev_held_safe(hdd_ctx, adapter, next_adapter,
 					   dbgid) {
-		if (adapter->deflink->vdev_id != vdev_id) {
+		hdd_adapter_for_each_active_link_info(adapter, link_info) {
+			if (link_info->vdev_id != vdev_id)
+				continue;
+
+			copy_station_stats_to_adapter(link_info, ev);
+			wlan_hdd_get_peer_rx_rate_stats(link_info);
+
+			/* dev_put has to be done here */
 			hdd_adapter_dev_put_debug(adapter, dbgid);
-			continue;
+			if (next_adapter)
+				hdd_adapter_dev_put_debug(next_adapter, dbgid);
+			return;
 		}
-		copy_station_stats_to_adapter(adapter->deflink, ev);
-		wlan_hdd_get_peer_rx_rate_stats(adapter->deflink);
-		/* dev_put has to be done here */
 		hdd_adapter_dev_put_debug(adapter, dbgid);
-		if (next_adapter)
-			hdd_adapter_dev_put_debug(next_adapter,
-						  dbgid);
-		break;
 	}
 }