This attribute is used to hint the length of flexible arrays to
compiler and sanitizers.

Signed-off-by: Mario Limonciello <[email protected]>
---
 .../drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h | 36 +++++++++---------
 drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h  | 38 +++++++++----------
 2 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h 
b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h
index 2cf2a7b12623..7711e892c31f 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h
@@ -163,8 +163,8 @@ typedef struct _ATOM_Tonga_State {
 
 typedef struct _ATOM_Tonga_State_Array {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;             /* Number of entries. */
-       ATOM_Tonga_State entries[];     /* Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Tonga_State entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_State_Array;
 
 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 {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;                                                     
                        /* Number of entries. */
-       ATOM_Tonga_MCLK_Dependency_Record entries[];                            
/* Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Tonga_MCLK_Dependency_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_MCLK_Dependency_Table;
 
 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 {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;                                                     
                        /* Number of entries. */
-       ATOM_Tonga_SCLK_Dependency_Record entries[];                            
 /* Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Tonga_SCLK_Dependency_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_SCLK_Dependency_Table;
 
 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 {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;                                                     
/* Number of entries. */
-       ATOM_Polaris_SCLK_Dependency_Record entries[];                          
 /* Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Polaris_SCLK_Dependency_Record entries[] 
__counted_by(ucNumEntries);
 } ATOM_Polaris_SCLK_Dependency_Table;
 
 typedef struct _ATOM_Tonga_PCIE_Record {
@@ -221,8 +221,8 @@ typedef struct _ATOM_Tonga_PCIE_Record {
 
 typedef struct _ATOM_Tonga_PCIE_Table {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;                                                     
                        /* Number of entries. */
-       ATOM_Tonga_PCIE_Record entries[];                                       
                /* Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Tonga_PCIE_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_PCIE_Table;
 
 typedef struct _ATOM_Polaris10_PCIE_Record {
@@ -234,8 +234,8 @@ typedef struct _ATOM_Polaris10_PCIE_Record {
 
 typedef struct _ATOM_Polaris10_PCIE_Table {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;                                         /* Number 
of entries. */
-       ATOM_Polaris10_PCIE_Record entries[];                      /* 
Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Polaris10_PCIE_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Polaris10_PCIE_Table;
 
 
@@ -251,8 +251,8 @@ typedef struct _ATOM_Tonga_MM_Dependency_Record {
 
 typedef struct _ATOM_Tonga_MM_Dependency_Table {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;                                                     
                        /* Number of entries. */
-       ATOM_Tonga_MM_Dependency_Record entries[];                         /* 
Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Tonga_MM_Dependency_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_MM_Dependency_Table;
 
 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 {
        UCHAR ucRevId;
-       UCHAR ucNumEntries;                                                     
                        /* Number of entries. */
-       ATOM_Tonga_Voltage_Lookup_Record entries[];                             
/* Dynamically allocate entries. */
+       UCHAR ucNumEntries;
+       ATOM_Tonga_Voltage_Lookup_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_Voltage_Lookup_Table;
 
 typedef struct _ATOM_Tonga_Fan_Table {
@@ -367,7 +367,7 @@ typedef struct _ATOM_Tonga_VCE_State_Record {
 typedef struct _ATOM_Tonga_VCE_State_Table {
        UCHAR ucRevId;
        UCHAR ucNumEntries;
-       ATOM_Tonga_VCE_State_Record entries[];
+       ATOM_Tonga_VCE_State_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_VCE_State_Table;
 
 typedef struct _ATOM_Tonga_PowerTune_Table {
@@ -481,7 +481,7 @@ typedef struct _ATOM_Tonga_Hard_Limit_Record {
 typedef struct _ATOM_Tonga_Hard_Limit_Table {
        UCHAR ucRevId;
        UCHAR ucNumEntries;
-       ATOM_Tonga_Hard_Limit_Record entries[];
+       ATOM_Tonga_Hard_Limit_Record entries[] __counted_by(ucNumEntries);
 } ATOM_Tonga_Hard_Limit_Table;
 
 typedef struct _ATOM_Tonga_GPIO_Table {
diff --git a/drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h 
b/drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h
index 69928a4a074b..9118fcddbf11 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h
+++ b/drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h
@@ -60,7 +60,7 @@ struct vi_dpm_level {
 
 struct vi_dpm_table {
        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
@@ -91,7 +91,7 @@ struct phm_set_power_state_input {
 
 struct phm_clock_array {
        uint32_t count;
-       uint32_t values[];
+       uint32_t values[] __counted_by(count);
 };
 
 struct phm_clock_voltage_dependency_record {
@@ -122,8 +122,8 @@ struct phm_acpclock_voltage_dependency_record {
 };
 
 struct phm_clock_voltage_dependency_table {
-       uint32_t count;                                                 /* 
Number of entries. */
-       struct phm_clock_voltage_dependency_record entries[];           /* 
Dynamically allocate count entries. */
+       uint32_t count;
+       struct phm_clock_voltage_dependency_record entries[] 
__counted_by(count);
 };
 
 struct phm_phase_shedding_limits_record {
@@ -140,7 +140,7 @@ struct phm_uvd_clock_voltage_dependency_record {
 
 struct phm_uvd_clock_voltage_dependency_table {
        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 {
@@ -150,7 +150,7 @@ struct phm_acp_clock_voltage_dependency_record {
 
 struct phm_acp_clock_voltage_dependency_table {
        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 {
@@ -160,33 +160,33 @@ struct phm_vce_clock_voltage_dependency_record {
 };
 
 struct phm_phase_shedding_limits_table {
-       uint32_t                           count;
-       struct phm_phase_shedding_limits_record  entries[];
+       uint32_t count;
+       struct phm_phase_shedding_limits_record  entries[] __counted_by(count);
 };
 
 struct phm_vceclock_voltage_dependency_table {
-       uint8_t count;                                    /* Number of entries. 
*/
-       struct phm_vceclock_voltage_dependency_record entries[1]; /* 
Dynamically allocate count entries. */
+       uint8_t count;
+       struct phm_vceclock_voltage_dependency_record entries[] 
__counted_by(count);
 };
 
 struct phm_uvdclock_voltage_dependency_table {
-       uint8_t count;                                    /* Number of entries. 
*/
-       struct phm_uvdclock_voltage_dependency_record entries[1]; /* 
Dynamically allocate count entries. */
+       uint8_t count;
+       struct phm_uvdclock_voltage_dependency_record entries[] 
__counted_by(count);
 };
 
 struct phm_samuclock_voltage_dependency_table {
-       uint8_t count;                                    /* Number of entries. 
*/
-       struct phm_samuclock_voltage_dependency_record entries[1]; /* 
Dynamically allocate count entries. */
+       uint8_t count;
+       struct phm_samuclock_voltage_dependency_record entries[] 
__counted_by(count);
 };
 
 struct phm_acpclock_voltage_dependency_table {
-       uint32_t count;                                    /* Number of 
entries. */
-       struct phm_acpclock_voltage_dependency_record entries[1]; /* 
Dynamically allocate count entries. */
+       uint32_t count;
+       struct phm_acpclock_voltage_dependency_record entries[] 
__counted_by(count);
 };
 
 struct phm_vce_clock_voltage_dependency_table {
        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 {
 
 struct phm_cac_leakage_table {
        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 {
@@ -404,7 +404,7 @@ struct phm_samu_clock_voltage_dependency_record {
 
 struct phm_samu_clock_voltage_dependency_table {
        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 {
-- 
2.43.0

Reply via email to