Commit 0ca9f757 authored by Mario Limonciello's avatar Mario Limonciello Committed by Alex Deucher

drm/amd/pm: powerplay: Add `__counted_by` attribute for flexible arrays

This attribute is used to hint the length of flexible arrays to
compiler and sanitizers.
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarMario Limonciello <mario.limonciello@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a4fcb5f7
...@@ -163,8 +163,8 @@ typedef struct _ATOM_Tonga_State { ...@@ -163,8 +163,8 @@ typedef struct _ATOM_Tonga_State {
typedef struct _ATOM_Tonga_State_Array { typedef struct _ATOM_Tonga_State_Array {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Tonga_State entries[]; /* Dynamically allocate entries. */ ATOM_Tonga_State entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_State_Array; } ATOM_Tonga_State_Array;
typedef struct _ATOM_Tonga_MCLK_Dependency_Record { typedef struct _ATOM_Tonga_MCLK_Dependency_Record {
...@@ -178,8 +178,8 @@ typedef struct _ATOM_Tonga_MCLK_Dependency_Record { ...@@ -178,8 +178,8 @@ typedef struct _ATOM_Tonga_MCLK_Dependency_Record {
typedef struct _ATOM_Tonga_MCLK_Dependency_Table { typedef struct _ATOM_Tonga_MCLK_Dependency_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Tonga_MCLK_Dependency_Record entries[]; /* Dynamically allocate entries. */ ATOM_Tonga_MCLK_Dependency_Record entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_MCLK_Dependency_Table; } ATOM_Tonga_MCLK_Dependency_Table;
typedef struct _ATOM_Tonga_SCLK_Dependency_Record { typedef struct _ATOM_Tonga_SCLK_Dependency_Record {
...@@ -193,8 +193,8 @@ typedef struct _ATOM_Tonga_SCLK_Dependency_Record { ...@@ -193,8 +193,8 @@ typedef struct _ATOM_Tonga_SCLK_Dependency_Record {
typedef struct _ATOM_Tonga_SCLK_Dependency_Table { typedef struct _ATOM_Tonga_SCLK_Dependency_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Tonga_SCLK_Dependency_Record entries[]; /* Dynamically allocate entries. */ ATOM_Tonga_SCLK_Dependency_Record entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_SCLK_Dependency_Table; } ATOM_Tonga_SCLK_Dependency_Table;
typedef struct _ATOM_Polaris_SCLK_Dependency_Record { typedef struct _ATOM_Polaris_SCLK_Dependency_Record {
...@@ -209,8 +209,8 @@ typedef struct _ATOM_Polaris_SCLK_Dependency_Record { ...@@ -209,8 +209,8 @@ typedef struct _ATOM_Polaris_SCLK_Dependency_Record {
typedef struct _ATOM_Polaris_SCLK_Dependency_Table { typedef struct _ATOM_Polaris_SCLK_Dependency_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Polaris_SCLK_Dependency_Record entries[]; /* Dynamically allocate entries. */ ATOM_Polaris_SCLK_Dependency_Record entries[] __counted_by(ucNumEntries);
} ATOM_Polaris_SCLK_Dependency_Table; } ATOM_Polaris_SCLK_Dependency_Table;
typedef struct _ATOM_Tonga_PCIE_Record { typedef struct _ATOM_Tonga_PCIE_Record {
...@@ -221,8 +221,8 @@ typedef struct _ATOM_Tonga_PCIE_Record { ...@@ -221,8 +221,8 @@ typedef struct _ATOM_Tonga_PCIE_Record {
typedef struct _ATOM_Tonga_PCIE_Table { typedef struct _ATOM_Tonga_PCIE_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Tonga_PCIE_Record entries[]; /* Dynamically allocate entries. */ ATOM_Tonga_PCIE_Record entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_PCIE_Table; } ATOM_Tonga_PCIE_Table;
typedef struct _ATOM_Polaris10_PCIE_Record { typedef struct _ATOM_Polaris10_PCIE_Record {
...@@ -234,8 +234,8 @@ typedef struct _ATOM_Polaris10_PCIE_Record { ...@@ -234,8 +234,8 @@ typedef struct _ATOM_Polaris10_PCIE_Record {
typedef struct _ATOM_Polaris10_PCIE_Table { typedef struct _ATOM_Polaris10_PCIE_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Polaris10_PCIE_Record entries[]; /* Dynamically allocate entries. */ ATOM_Polaris10_PCIE_Record entries[] __counted_by(ucNumEntries);
} ATOM_Polaris10_PCIE_Table; } ATOM_Polaris10_PCIE_Table;
...@@ -251,8 +251,8 @@ typedef struct _ATOM_Tonga_MM_Dependency_Record { ...@@ -251,8 +251,8 @@ typedef struct _ATOM_Tonga_MM_Dependency_Record {
typedef struct _ATOM_Tonga_MM_Dependency_Table { typedef struct _ATOM_Tonga_MM_Dependency_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Tonga_MM_Dependency_Record entries[]; /* Dynamically allocate entries. */ ATOM_Tonga_MM_Dependency_Record entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_MM_Dependency_Table; } ATOM_Tonga_MM_Dependency_Table;
typedef struct _ATOM_Tonga_Voltage_Lookup_Record { typedef struct _ATOM_Tonga_Voltage_Lookup_Record {
...@@ -264,8 +264,8 @@ typedef struct _ATOM_Tonga_Voltage_Lookup_Record { ...@@ -264,8 +264,8 @@ typedef struct _ATOM_Tonga_Voltage_Lookup_Record {
typedef struct _ATOM_Tonga_Voltage_Lookup_Table { typedef struct _ATOM_Tonga_Voltage_Lookup_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; /* Number of entries. */ UCHAR ucNumEntries;
ATOM_Tonga_Voltage_Lookup_Record entries[]; /* Dynamically allocate entries. */ ATOM_Tonga_Voltage_Lookup_Record entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_Voltage_Lookup_Table; } ATOM_Tonga_Voltage_Lookup_Table;
typedef struct _ATOM_Tonga_Fan_Table { typedef struct _ATOM_Tonga_Fan_Table {
...@@ -367,7 +367,7 @@ typedef struct _ATOM_Tonga_VCE_State_Record { ...@@ -367,7 +367,7 @@ typedef struct _ATOM_Tonga_VCE_State_Record {
typedef struct _ATOM_Tonga_VCE_State_Table { typedef struct _ATOM_Tonga_VCE_State_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; UCHAR ucNumEntries;
ATOM_Tonga_VCE_State_Record entries[]; ATOM_Tonga_VCE_State_Record entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_VCE_State_Table; } ATOM_Tonga_VCE_State_Table;
typedef struct _ATOM_Tonga_PowerTune_Table { typedef struct _ATOM_Tonga_PowerTune_Table {
...@@ -481,7 +481,7 @@ typedef struct _ATOM_Tonga_Hard_Limit_Record { ...@@ -481,7 +481,7 @@ typedef struct _ATOM_Tonga_Hard_Limit_Record {
typedef struct _ATOM_Tonga_Hard_Limit_Table { typedef struct _ATOM_Tonga_Hard_Limit_Table {
UCHAR ucRevId; UCHAR ucRevId;
UCHAR ucNumEntries; UCHAR ucNumEntries;
ATOM_Tonga_Hard_Limit_Record entries[]; ATOM_Tonga_Hard_Limit_Record entries[] __counted_by(ucNumEntries);
} ATOM_Tonga_Hard_Limit_Table; } ATOM_Tonga_Hard_Limit_Table;
typedef struct _ATOM_Tonga_GPIO_Table { typedef struct _ATOM_Tonga_GPIO_Table {
......
...@@ -60,7 +60,7 @@ struct vi_dpm_level { ...@@ -60,7 +60,7 @@ struct vi_dpm_level {
struct vi_dpm_table { struct vi_dpm_table {
uint32_t count; uint32_t count;
struct vi_dpm_level dpm_level[]; struct vi_dpm_level dpm_level[] __counted_by(count);
}; };
#define PCIE_PERF_REQ_REMOVE_REGISTRY 0 #define PCIE_PERF_REQ_REMOVE_REGISTRY 0
...@@ -91,7 +91,7 @@ struct phm_set_power_state_input { ...@@ -91,7 +91,7 @@ struct phm_set_power_state_input {
struct phm_clock_array { struct phm_clock_array {
uint32_t count; uint32_t count;
uint32_t values[]; uint32_t values[] __counted_by(count);
}; };
struct phm_clock_voltage_dependency_record { struct phm_clock_voltage_dependency_record {
...@@ -122,8 +122,8 @@ struct phm_acpclock_voltage_dependency_record { ...@@ -122,8 +122,8 @@ struct phm_acpclock_voltage_dependency_record {
}; };
struct phm_clock_voltage_dependency_table { struct phm_clock_voltage_dependency_table {
uint32_t count; /* Number of entries. */ uint32_t count;
struct phm_clock_voltage_dependency_record entries[]; /* Dynamically allocate count entries. */ struct phm_clock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_phase_shedding_limits_record { struct phm_phase_shedding_limits_record {
...@@ -140,7 +140,7 @@ struct phm_uvd_clock_voltage_dependency_record { ...@@ -140,7 +140,7 @@ struct phm_uvd_clock_voltage_dependency_record {
struct phm_uvd_clock_voltage_dependency_table { struct phm_uvd_clock_voltage_dependency_table {
uint8_t count; uint8_t count;
struct phm_uvd_clock_voltage_dependency_record entries[]; struct phm_uvd_clock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_acp_clock_voltage_dependency_record { struct phm_acp_clock_voltage_dependency_record {
...@@ -150,7 +150,7 @@ struct phm_acp_clock_voltage_dependency_record { ...@@ -150,7 +150,7 @@ struct phm_acp_clock_voltage_dependency_record {
struct phm_acp_clock_voltage_dependency_table { struct phm_acp_clock_voltage_dependency_table {
uint32_t count; uint32_t count;
struct phm_acp_clock_voltage_dependency_record entries[]; struct phm_acp_clock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_vce_clock_voltage_dependency_record { struct phm_vce_clock_voltage_dependency_record {
...@@ -161,32 +161,32 @@ struct phm_vce_clock_voltage_dependency_record { ...@@ -161,32 +161,32 @@ struct phm_vce_clock_voltage_dependency_record {
struct phm_phase_shedding_limits_table { struct phm_phase_shedding_limits_table {
uint32_t count; uint32_t count;
struct phm_phase_shedding_limits_record entries[]; struct phm_phase_shedding_limits_record entries[] __counted_by(count);
}; };
struct phm_vceclock_voltage_dependency_table { struct phm_vceclock_voltage_dependency_table {
uint8_t count; /* Number of entries. */ uint8_t count;
struct phm_vceclock_voltage_dependency_record entries[1]; /* Dynamically allocate count entries. */ struct phm_vceclock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_uvdclock_voltage_dependency_table { struct phm_uvdclock_voltage_dependency_table {
uint8_t count; /* Number of entries. */ uint8_t count;
struct phm_uvdclock_voltage_dependency_record entries[1]; /* Dynamically allocate count entries. */ struct phm_uvdclock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_samuclock_voltage_dependency_table { struct phm_samuclock_voltage_dependency_table {
uint8_t count; /* Number of entries. */ uint8_t count;
struct phm_samuclock_voltage_dependency_record entries[1]; /* Dynamically allocate count entries. */ struct phm_samuclock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_acpclock_voltage_dependency_table { struct phm_acpclock_voltage_dependency_table {
uint32_t count; /* Number of entries. */ uint32_t count;
struct phm_acpclock_voltage_dependency_record entries[1]; /* Dynamically allocate count entries. */ struct phm_acpclock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_vce_clock_voltage_dependency_table { struct phm_vce_clock_voltage_dependency_table {
uint8_t count; uint8_t count;
struct phm_vce_clock_voltage_dependency_record entries[]; struct phm_vce_clock_voltage_dependency_record entries[] __counted_by(count);
}; };
...@@ -393,7 +393,7 @@ union phm_cac_leakage_record { ...@@ -393,7 +393,7 @@ union phm_cac_leakage_record {
struct phm_cac_leakage_table { struct phm_cac_leakage_table {
uint32_t count; uint32_t count;
union phm_cac_leakage_record entries[]; union phm_cac_leakage_record entries[] __counted_by(count);
}; };
struct phm_samu_clock_voltage_dependency_record { struct phm_samu_clock_voltage_dependency_record {
...@@ -404,7 +404,7 @@ struct phm_samu_clock_voltage_dependency_record { ...@@ -404,7 +404,7 @@ struct phm_samu_clock_voltage_dependency_record {
struct phm_samu_clock_voltage_dependency_table { struct phm_samu_clock_voltage_dependency_table {
uint8_t count; uint8_t count;
struct phm_samu_clock_voltage_dependency_record entries[]; struct phm_samu_clock_voltage_dependency_record entries[] __counted_by(count);
}; };
struct phm_cac_tdp_table { struct phm_cac_tdp_table {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment