diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 85b8d7f4f4..42f3fdacc4 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -9217,7 +9217,6 @@ static QDF_STATUS extract_mac_phy_cap_service_ready_ext_tlv( uint8_t *event, uint8_t hw_mode_id, uint8_t phy_id, struct wlan_psoc_host_mac_phy_caps *param) { -#define MAX_NUM_HW_MODES 24 WMI_SERVICE_READY_EXT_EVENTID_param_tlvs *param_buf; WMI_MAC_PHY_CAPABILITIES *mac_phy_caps; WMI_SOC_MAC_PHY_HW_MODE_CAPS *hw_caps; @@ -9231,11 +9230,10 @@ static QDF_STATUS extract_mac_phy_cap_service_ready_ext_tlv( hw_caps = param_buf->soc_hw_mode_caps; if (!hw_caps) return QDF_STATUS_E_INVAL; - /** - * The max number of hw modes is 24 including 11ax. - */ - if (hw_caps->num_hw_modes > MAX_NUM_HW_MODES) { - wmi_err_rl("invalid num_hw_modes %d", hw_caps->num_hw_modes); + if (hw_caps->num_hw_modes > PSOC_MAX_HW_MODE || + hw_caps->num_hw_modes > param_buf->num_hw_mode_caps) { + wmi_err_rl("invalid num_hw_modes %d, num_hw_mode_caps %d", + hw_caps->num_hw_modes, param_buf->num_hw_mode_caps); return QDF_STATUS_E_INVAL; }