Applied. Thanks! Alex On Fri, Dec 9, 2022 at 3:24 AM Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@xxxxxxxxx> wrote: > > 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_DISPLAY_OBJECT_PATH, > _ATOM_DISPLAY_OBJECT_PATH_TABLE, _ATOM_OBJECT_TABLE, GOP_VBIOS_CONTENT > _ATOM_GPIO_VOLTAGE_OBJECT_V3 and refactor the rest of the code accordingly. > > It's worth mentioning that doing a build before/after this patch > results in no 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/239 > Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101836 [1] > > Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@xxxxxxxxx> > --- > Notes for the maintainer: > > - These are all fake-flexible arrays with references in source code for > the radeon driver. Given the way they are used, no change to *.c files > were required. > --- > drivers/gpu/drm/radeon/atombios.h | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/atombios.h b/drivers/gpu/drm/radeon/atombios.h > index 235e59b547a1..8a6621f1e82c 100644 > --- a/drivers/gpu/drm/radeon/atombios.h > +++ b/drivers/gpu/drm/radeon/atombios.h > @@ -4020,7 +4020,7 @@ typedef struct _ATOM_DISPLAY_OBJECT_PATH > USHORT usSize; //the size of ATOM_DISPLAY_OBJECT_PATH > USHORT usConnObjectId; //Connector Object ID > USHORT usGPUObjectId; //GPU ID > - USHORT usGraphicObjIds[1]; //1st Encoder Obj source from GPU to last Graphic Obj destinate to connector. > + USHORT usGraphicObjIds[]; //1st Encoder Obj source from GPU to last Graphic Obj destinate to connector. > }ATOM_DISPLAY_OBJECT_PATH; > > typedef struct _ATOM_DISPLAY_EXTERNAL_OBJECT_PATH > @@ -4037,7 +4037,7 @@ typedef struct _ATOM_DISPLAY_OBJECT_PATH_TABLE > UCHAR ucNumOfDispPath; > UCHAR ucVersion; > UCHAR ucPadding[2]; > - ATOM_DISPLAY_OBJECT_PATH asDispPath[1]; > + ATOM_DISPLAY_OBJECT_PATH asDispPath[]; > }ATOM_DISPLAY_OBJECT_PATH_TABLE; > > > @@ -4053,7 +4053,7 @@ typedef struct _ATOM_OBJECT_TABLE //Above 4 object table > { > UCHAR ucNumberOfObjects; > UCHAR ucPadding[3]; > - ATOM_OBJECT asObjects[1]; > + ATOM_OBJECT asObjects[]; > }ATOM_OBJECT_TABLE; > > typedef struct _ATOM_SRC_DST_TABLE_FOR_ONE_OBJECT //usSrcDstTableOffset pointing to this structure > @@ -4615,7 +4615,7 @@ typedef struct _ATOM_GPIO_VOLTAGE_OBJECT_V3 > UCHAR ucPhaseDelay; // phase delay in unit of micro second > UCHAR ucReserved; > ULONG ulGpioMaskVal; // GPIO Mask value > - VOLTAGE_LUT_ENTRY_V2 asVolGpioLut[1]; > + VOLTAGE_LUT_ENTRY_V2 asVolGpioLut[]; > }ATOM_GPIO_VOLTAGE_OBJECT_V3; > > typedef struct _ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 > @@ -7964,7 +7964,7 @@ typedef struct { > > typedef struct { > VFCT_IMAGE_HEADER VbiosHeader; > - UCHAR VbiosContent[1]; > + UCHAR VbiosContent[]; > }GOP_VBIOS_CONTENT; > > typedef struct { > -- > 2.38.1 >