mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
drm/amdgpu: Replace one-elements array with flex-array members
One-element arrays are deprecated, and we are replacing them with flexible array members instead. So, replace one-element array with flexible-array member in structs ATOM_I2C_VOLTAGE_OBJECT_V3, ATOM_ASIC_INTERNAL_SS_INFO_V2, ATOM_ASIC_INTERNAL_SS_INFO_V3, and refactor the rest of the code accordingly. Important to mention is that doing a build before/after this patch results in no functional binary output differences. This helps with the ongoing efforts to tighten the FORTIFY_SOURCE routines on memcpy() and help us make progress towards globally enabling -fstrict-flex-arrays=3 [1]. Link: https://github.com/KSPP/linux/issues/79 Link: https://github.com/KSPP/linux/issues/238 Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101836 [1] Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
9635709a83
commit
bd3fe587f8
|
|
@ -665,8 +665,9 @@ static enum bp_result get_ss_info_v3_1(
|
|||
if (!DATA_TABLES(ASIC_InternalSS_Info))
|
||||
return BP_RESULT_UNSUPPORTED;
|
||||
|
||||
ss_table_header_include = GET_IMAGE(ATOM_ASIC_INTERNAL_SS_INFO_V3,
|
||||
DATA_TABLES(ASIC_InternalSS_Info));
|
||||
ss_table_header_include = ((ATOM_ASIC_INTERNAL_SS_INFO_V3 *) bios_get_image(&bp->base,
|
||||
DATA_TABLES(ASIC_InternalSS_Info),
|
||||
struct_size(ss_table_header_include, asSpreadSpectrum, 1)));
|
||||
table_size =
|
||||
(le16_to_cpu(ss_table_header_include->sHeader.usStructureSize)
|
||||
- sizeof(ATOM_COMMON_TABLE_HEADER))
|
||||
|
|
@ -1032,8 +1033,10 @@ static enum bp_result get_ss_info_from_internal_ss_info_tbl_V2_1(
|
|||
if (!DATA_TABLES(ASIC_InternalSS_Info))
|
||||
return result;
|
||||
|
||||
header = GET_IMAGE(ATOM_ASIC_INTERNAL_SS_INFO_V2,
|
||||
DATA_TABLES(ASIC_InternalSS_Info));
|
||||
header = ((ATOM_ASIC_INTERNAL_SS_INFO_V2 *) bios_get_image(
|
||||
&bp->base,
|
||||
DATA_TABLES(ASIC_InternalSS_Info),
|
||||
struct_size(header, asSpreadSpectrum, 1)));
|
||||
|
||||
memset(info, 0, sizeof(struct spread_spectrum_info));
|
||||
|
||||
|
|
@ -1712,8 +1715,10 @@ static uint32_t get_ss_entry_number_from_internal_ss_info_tbl_v2_1(
|
|||
if (!DATA_TABLES(ASIC_InternalSS_Info))
|
||||
return 0;
|
||||
|
||||
header_include = GET_IMAGE(ATOM_ASIC_INTERNAL_SS_INFO_V2,
|
||||
DATA_TABLES(ASIC_InternalSS_Info));
|
||||
header_include = ((ATOM_ASIC_INTERNAL_SS_INFO_V2 *) bios_get_image(
|
||||
&bp->base,
|
||||
DATA_TABLES(ASIC_InternalSS_Info),
|
||||
struct_size(header_include, asSpreadSpectrum, 1)));
|
||||
|
||||
size = (le16_to_cpu(header_include->sHeader.usStructureSize)
|
||||
- sizeof(ATOM_COMMON_TABLE_HEADER))
|
||||
|
|
@ -1749,8 +1754,9 @@ static uint32_t get_ss_entry_number_from_internal_ss_info_tbl_V3_1(
|
|||
if (!DATA_TABLES(ASIC_InternalSS_Info))
|
||||
return number;
|
||||
|
||||
header_include = GET_IMAGE(ATOM_ASIC_INTERNAL_SS_INFO_V3,
|
||||
DATA_TABLES(ASIC_InternalSS_Info));
|
||||
header_include = ((ATOM_ASIC_INTERNAL_SS_INFO_V3 *) bios_get_image(&bp->base,
|
||||
DATA_TABLES(ASIC_InternalSS_Info),
|
||||
struct_size(header_include, asSpreadSpectrum, 1)));
|
||||
size = (le16_to_cpu(header_include->sHeader.usStructureSize) -
|
||||
sizeof(ATOM_COMMON_TABLE_HEADER)) /
|
||||
sizeof(ATOM_ASIC_SS_ASSIGNMENT_V3);
|
||||
|
|
|
|||
|
|
@ -5146,7 +5146,7 @@ typedef struct _ATOM_I2C_VOLTAGE_OBJECT_V3
|
|||
UCHAR ucVoltageControlOffset;
|
||||
UCHAR ucVoltageControlFlag; // Bit0: 0 - One byte data; 1 - Two byte data
|
||||
UCHAR ulReserved[3];
|
||||
VOLTAGE_LUT_ENTRY asVolI2cLut[1]; // end with 0xff
|
||||
VOLTAGE_LUT_ENTRY asVolI2cLut[]; // end with 0xff
|
||||
}ATOM_I2C_VOLTAGE_OBJECT_V3;
|
||||
|
||||
// ATOM_I2C_VOLTAGE_OBJECT_V3.ucVoltageControlFlag
|
||||
|
|
@ -6679,7 +6679,7 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO
|
|||
typedef struct _ATOM_ASIC_INTERNAL_SS_INFO_V2
|
||||
{
|
||||
ATOM_COMMON_TABLE_HEADER sHeader;
|
||||
ATOM_ASIC_SS_ASSIGNMENT_V2 asSpreadSpectrum[1]; //this is point only.
|
||||
ATOM_ASIC_SS_ASSIGNMENT_V2 asSpreadSpectrum[]; //this is point only.
|
||||
}ATOM_ASIC_INTERNAL_SS_INFO_V2;
|
||||
|
||||
typedef struct _ATOM_ASIC_SS_ASSIGNMENT_V3
|
||||
|
|
@ -6701,7 +6701,7 @@ typedef struct _ATOM_ASIC_SS_ASSIGNMENT_V3
|
|||
typedef struct _ATOM_ASIC_INTERNAL_SS_INFO_V3
|
||||
{
|
||||
ATOM_COMMON_TABLE_HEADER sHeader;
|
||||
ATOM_ASIC_SS_ASSIGNMENT_V3 asSpreadSpectrum[1]; //this is pointer only.
|
||||
ATOM_ASIC_SS_ASSIGNMENT_V3 asSpreadSpectrum[]; //this is pointer only.
|
||||
}ATOM_ASIC_INTERNAL_SS_INFO_V3;
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user