qcacmn: Add sanity check for phase values length

Add length sanity check for ibf cal value & phase delta
to ensure HOST always align with target defined length.
Also remove the REPORT_AOA_FOR_RCC flag usage.

Change-Id: I06e4a430143df1534849b8ec974e38932cff3ef1
CRs-Fixed: 2997030
This commit is contained in:
Shwetha G K
2021-07-22 04:22:23 +05:30
committed by Madan Koyyalamudi
parent a6e6827a7a
commit 799ebe40d7
2 changed files with 14 additions and 18 deletions

View File

@@ -228,7 +228,6 @@ static QDF_STATUS send_cfr_rcc_cmd_tlv(wmi_unified_t wmi_handle,
return status; return status;
} }
#ifdef REPORT_AOA_FOR_RCC
static QDF_STATUS static QDF_STATUS
extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle, extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
void *evt_buf, void *evt_buf,
@@ -257,27 +256,28 @@ extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
param->chain_phase_mask = (phase_event->chainInfo >> 16) & 0xFFFF; param->chain_phase_mask = (phase_event->chainInfo >> 16) & 0xFFFF;
if ((sizeof(param->ibf_cal_val)) <
(sizeof(phase_event->perChainIbfCalVal))) {
wmi_err("ibf_cal_val can not hold all values from event data");
return QDF_STATUS_E_RANGE;
}
if ((sizeof(param->phase_delta)) <
(sizeof(phase_event->phasedelta))) {
wmi_err("phase_delta can not hold all values from event data");
return QDF_STATUS_E_RANGE;
}
qdf_mem_copy(param->ibf_cal_val, qdf_mem_copy(param->ibf_cal_val,
phase_event->perChainIbfCalVal, phase_event->perChainIbfCalVal,
(sizeof(uint32_t) * WMI_MAX_CHAINS_FOR_AOA_RCC)); sizeof(param->ibf_cal_val));
qdf_mem_copy(param->phase_delta, qdf_mem_copy(param->phase_delta,
phase_event->phasedelta, phase_event->phasedelta,
(sizeof(uint32_t) * sizeof(param->phase_delta));
WMI_MAX_CHAINS_FOR_AOA_RCC *
MAX_AOA_PHASEDELTA));
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
#else
static QDF_STATUS
extract_cfr_phase_param_tlv(wmi_unified_t wmi_handle,
void *evt_buf,
struct wmi_cfr_phase_delta_param *param)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif /* REPORT_AOA_FOR_RCC */
#endif #endif
static QDF_STATUS send_peer_cfr_capture_cmd_tlv(wmi_unified_t wmi_handle, static QDF_STATUS send_peer_cfr_capture_cmd_tlv(wmi_unified_t wmi_handle,

View File

@@ -16081,10 +16081,8 @@ event_ids[wmi_roam_scan_chan_list_id] =
#endif #endif
event_ids[wmi_pdev_get_halphy_cal_status_event_id] = event_ids[wmi_pdev_get_halphy_cal_status_event_id] =
WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID; WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID;
#ifdef REPORT_AOA_FOR_RCC
event_ids[wmi_pdev_aoa_phasedelta_event_id] = event_ids[wmi_pdev_aoa_phasedelta_event_id] =
WMI_PDEV_AOA_PHASEDELTA_EVENTID; WMI_PDEV_AOA_PHASEDELTA_EVENTID;
#endif
} }
#ifdef WLAN_FEATURE_LINK_LAYER_STATS #ifdef WLAN_FEATURE_LINK_LAYER_STATS
@@ -16499,10 +16497,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED; WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED;
wmi_service[wmi_service_rtt_ap_initiator_bursted_mode_supported] = wmi_service[wmi_service_rtt_ap_initiator_bursted_mode_supported] =
WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED; WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED;
#ifdef REPORT_AOA_FOR_RCC
wmi_service[wmi_service_aoa_for_rcc_supported] = wmi_service[wmi_service_aoa_for_rcc_supported] =
WMI_SERVICE_AOA_FOR_RCC_SUPPORTED; WMI_SERVICE_AOA_FOR_RCC_SUPPORTED;
#endif
#ifdef WLAN_FEATURE_P2P_P2P_STA #ifdef WLAN_FEATURE_P2P_P2P_STA
wmi_service[wmi_service_p2p_p2p_cc_support] = wmi_service[wmi_service_p2p_p2p_cc_support] =
WMI_SERVICE_P2P_P2P_CONCURRENCY_SUPPORT; WMI_SERVICE_P2P_P2P_CONCURRENCY_SUPPORT;