From 00a0c37e875093213409fdebeb546f038a176bbf Mon Sep 17 00:00:00 2001 From: Bala Venkatesh Date: Thu, 26 Sep 2019 18:11:34 +0530 Subject: [PATCH] qcacmn: Update the vdev_id in the vdev_chain_rssi stats In tgt layer, rssi_stats are copied by comparing the vdev id filled in the target layer and last reqested stats vdev id. But in target layer api, target_if_cp_stats_extract_vdev_chain_rssi_stats vdev id is not filled and that can lead to wrong stats in the upper layers. Update vdev id in the rssi stats. Change-Id: I6a8bd032152b43b90ffd4acfc760e218bf4bba5b CRs-Fixed: 2530148 --- target_if/cp_stats/src/target_if_mc_cp_stats.c | 1 + wmi/src/wmi_unified_tlv.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/target_if/cp_stats/src/target_if_mc_cp_stats.c b/target_if/cp_stats/src/target_if_mc_cp_stats.c index 0b1fb62c94c6..794ddc5746de 100644 --- a/target_if/cp_stats/src/target_if_mc_cp_stats.c +++ b/target_if/cp_stats/src/target_if_mc_cp_stats.c @@ -324,6 +324,7 @@ static QDF_STATUS target_if_cp_stats_extract_vdev_chain_rssi_stats( &rssi_stats); if (QDF_IS_STATUS_ERROR(status)) continue; + ev->vdev_chain_rssi[i].vdev_id = rssi_stats.vdev_id; for (j = 0; j < MAX_NUM_CHAINS; j++) { dat_snr = rssi_stats.rssi_avg_data[j]; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 93f96e2d6565..a1c4acdff1b2 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -9107,6 +9107,8 @@ static QDF_STATUS extract_per_chain_rssi_stats_tlv(wmi_unified_t wmi_handle, data = ((uint8_t *)(&rssi_event[1])) + WMI_TLV_HDR_SIZE; fw_rssi_stats = &((wmi_rssi_stats *)data)[index]; + if (fw_rssi_stats->vdev_id >= WLAN_UMAC_PDEV_MAX_VDEVS) + return QDF_STATUS_E_INVAL; rssi_stats->vdev_id = fw_rssi_stats->vdev_id; qdf_mem_copy(rssi_stats->rssi_avg_beacon,