Linux Kernel Mentees Archive mirror
 help / color / mirror / Atom feed
From: Alex Deucher <alexdeucher@gmail.com>
To: "José Pekkarinen" <jose.pekkarinen@foxhound.fi>
Cc: Xinhui.Pan@amd.com, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
	alexander.deucher@amd.com,
	linux-kernel-mentees@lists.linuxfoundation.org,
	christian.koenig@amd.com
Subject: Re: [PATCH v2] drm/radeon: replace 1-element arrays with flexible-array members
Date: Tue, 31 Oct 2023 16:08:00 -0400	[thread overview]
Message-ID: <CADnq5_NX2XDA87xfgF0ddStKyJofhkCr-rzvnKVkZ2XfM4t=mw@mail.gmail.com> (raw)
In-Reply-To: <20231031170847.23458-1-jose.pekkarinen@foxhound.fi>

On Tue, Oct 31, 2023 at 1:09 PM José Pekkarinen
<jose.pekkarinen@foxhound.fi> wrote:
>
> Reported by coccinelle, the following patch will move the
> following 1 element arrays to flexible arrays.
>
> drivers/gpu/drm/radeon/atombios.h:5523:32-48: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:5545:32-48: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:5461:34-44: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:4447:30-40: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:4236:30-41: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:7095:28-45: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:3896:27-37: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:5443:16-25: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:5454:34-43: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:4603:21-32: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:4628:32-46: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:6285:29-39: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:4296:30-36: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:4756:28-36: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:4064:22-35: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:7327:9-24: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:7332:32-53: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:7362:26-41: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:7369:29-44: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:7349:24-32: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
> drivers/gpu/drm/radeon/atombios.h:7355:27-35: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)
>
> Signed-off-by: José Pekkarinen <jose.pekkarinen@foxhound.fi>
> ---
> [v1 -> v2] removed padding and hinted sensitive cases from original patch

Applied.  Thanks!

Alex

>
>  drivers/gpu/drm/radeon/atombios.h | 42 +++++++++++++++----------------
>  1 file changed, 21 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/atombios.h b/drivers/gpu/drm/radeon/atombios.h
> index 8a6621f1e82c..2db40789235c 100644
> --- a/drivers/gpu/drm/radeon/atombios.h
> +++ b/drivers/gpu/drm/radeon/atombios.h
> @@ -3893,7 +3893,7 @@ typedef struct _ATOM_GPIO_PIN_ASSIGNMENT
>  typedef struct _ATOM_GPIO_PIN_LUT
>  {
>    ATOM_COMMON_TABLE_HEADER  sHeader;
> -  ATOM_GPIO_PIN_ASSIGNMENT     asGPIO_Pin[1];
> +  ATOM_GPIO_PIN_ASSIGNMENT     asGPIO_Pin[];
>  }ATOM_GPIO_PIN_LUT;
>
>  /****************************************************************************/
> @@ -4061,7 +4061,7 @@ typedef struct _ATOM_SRC_DST_TABLE_FOR_ONE_OBJECT         //usSrcDstTableOffset
>    UCHAR               ucNumberOfSrc;
>    USHORT              usSrcObjectID[1];
>    UCHAR               ucNumberOfDst;
> -  USHORT              usDstObjectID[1];
> +  USHORT              usDstObjectID[];
>  }ATOM_SRC_DST_TABLE_FOR_ONE_OBJECT;
>
>
> @@ -4233,7 +4233,7 @@ typedef struct  _ATOM_CONNECTOR_DEVICE_TAG_RECORD
>    ATOM_COMMON_RECORD_HEADER   sheader;
>    UCHAR                       ucNumberOfDevice;
>    UCHAR                       ucReserved;
> -  ATOM_CONNECTOR_DEVICE_TAG   asDeviceTag[1];         //This Id is same as "ATOM_DEVICE_XXX_SUPPORT", 1 is only for allocation
> +  ATOM_CONNECTOR_DEVICE_TAG   asDeviceTag[];          //This Id is same as "ATOM_DEVICE_XXX_SUPPORT", 1 is only for allocation
>  }ATOM_CONNECTOR_DEVICE_TAG_RECORD;
>
>
> @@ -4293,7 +4293,7 @@ typedef struct  _ATOM_OBJECT_GPIO_CNTL_RECORD
>    ATOM_COMMON_RECORD_HEADER   sheader;
>    UCHAR                       ucFlags;                // Future expnadibility
>    UCHAR                       ucNumberOfPins;         // Number of GPIO pins used to control the object
> -  ATOM_GPIO_PIN_CONTROL_PAIR  asGpio[1];              // the real gpio pin pair determined by number of pins ucNumberOfPins
> +  ATOM_GPIO_PIN_CONTROL_PAIR  asGpio[];               // the real gpio pin pair determined by number of pins ucNumberOfPins
>  }ATOM_OBJECT_GPIO_CNTL_RECORD;
>
>  //Definitions for GPIO pin state
> @@ -4444,7 +4444,7 @@ typedef struct  _ATOM_BRACKET_LAYOUT_RECORD
>    UCHAR                       ucWidth;
>    UCHAR                       ucConnNum;
>    UCHAR                       ucReserved;
> -  ATOM_CONNECTOR_LAYOUT_INFO  asConnInfo[1];
> +  ATOM_CONNECTOR_LAYOUT_INFO  asConnInfo[];
>  }ATOM_BRACKET_LAYOUT_RECORD;
>
>  /****************************************************************************/
> @@ -4600,7 +4600,7 @@ typedef struct  _ATOM_I2C_VOLTAGE_OBJECT_V3
>     UCHAR    ucVoltageControlAddress;
>     UCHAR    ucVoltageControlOffset;
>     ULONG    ulReserved;
> -   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
> @@ -4625,7 +4625,7 @@ typedef struct  _ATOM_LEAKAGE_VOLTAGE_OBJECT_V3
>     UCHAR    ucLeakageEntryNum;           // indicate the entry number of LeakageId/Voltage Lut table
>     UCHAR    ucReserved[2];
>     ULONG    ulMaxVoltageLevel;
> -   LEAKAGE_VOLTAGE_LUT_ENTRY_V2 asLeakageIdLut[1];
> +   LEAKAGE_VOLTAGE_LUT_ENTRY_V2 asLeakageIdLut[];
>  }ATOM_LEAKAGE_VOLTAGE_OBJECT_V3;
>
>
> @@ -4753,7 +4753,7 @@ typedef struct _ATOM_POWER_SOURCE_INFO
>  {
>                 ATOM_COMMON_TABLE_HEADER                asHeader;
>                 UCHAR                                                                                           asPwrbehave[16];
> -               ATOM_POWER_SOURCE_OBJECT                asPwrObj[1];
> +               ATOM_POWER_SOURCE_OBJECT                asPwrObj[];
>  }ATOM_POWER_SOURCE_INFO;
>
>
> @@ -5440,7 +5440,7 @@ typedef struct _ATOM_FUSION_SYSTEM_INFO_V2
>  typedef struct _ATOM_I2C_DATA_RECORD
>  {
>    UCHAR         ucNunberOfBytes;                                              //Indicates how many bytes SW needs to write to the external ASIC for one block, besides to "Start" and "Stop"
> -  UCHAR         ucI2CData[1];                                                 //I2C data in bytes, should be less than 16 bytes usually
> +  UCHAR         ucI2CData[];                                                  //I2C data in bytes, should be less than 16 bytes usually
>  }ATOM_I2C_DATA_RECORD;
>
>
> @@ -5451,14 +5451,14 @@ typedef struct _ATOM_I2C_DEVICE_SETUP_INFO
>    UCHAR                                        ucSSChipID;             //SS chip being used
>    UCHAR                                        ucSSChipSlaveAddr;      //Slave Address to set up this SS chip
>    UCHAR                           ucNumOfI2CDataRecords;  //number of data block
> -  ATOM_I2C_DATA_RECORD            asI2CData[1];
> +  ATOM_I2C_DATA_RECORD            asI2CData[];
>  }ATOM_I2C_DEVICE_SETUP_INFO;
>
>  //==========================================================================================
>  typedef struct  _ATOM_ASIC_MVDD_INFO
>  {
>    ATOM_COMMON_TABLE_HEADER           sHeader;
> -  ATOM_I2C_DEVICE_SETUP_INFO      asI2CSetup[1];
> +  ATOM_I2C_DEVICE_SETUP_INFO      asI2CSetup[];
>  }ATOM_ASIC_MVDD_INFO;
>
>  //==========================================================================================
> @@ -5520,7 +5520,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
> @@ -5542,7 +5542,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;
>
>
> @@ -6282,7 +6282,7 @@ typedef union _ATOM_MEMORY_SETTING_ID_CONFIG_ACCESS
>
>  typedef struct _ATOM_MEMORY_SETTING_DATA_BLOCK{
>         ATOM_MEMORY_SETTING_ID_CONFIG_ACCESS                    ulMemoryID;
> -       ULONG                                                                                                                           aulMemData[1];
> +       ULONG                                                                                                                           aulMemData[];
>  }ATOM_MEMORY_SETTING_DATA_BLOCK;
>
>
> @@ -7092,7 +7092,7 @@ typedef struct _ATOM_DISP_OUT_INFO_V3
>    UCHAR  ucCoreRefClkSource;                    // value of CORE_REF_CLK_SOURCE
>    UCHAR  ucDispCaps;
>    UCHAR  ucReserved[2];
> -  ASIC_TRANSMITTER_INFO_V2  asTransmitterInfo[1];     // for alligment only
> +  ASIC_TRANSMITTER_INFO_V2  asTransmitterInfo[];      // for alligment only
>  }ATOM_DISP_OUT_INFO_V3;
>
>  //ucDispCaps
> @@ -7324,12 +7324,12 @@ typedef struct _CLOCK_CONDITION_SETTING_ENTRY{
>    USHORT usMaxClockFreq;
>    UCHAR  ucEncodeMode;
>    UCHAR  ucPhySel;
> -  ULONG  ulAnalogSetting[1];
> +  ULONG  ulAnalogSetting[];
>  }CLOCK_CONDITION_SETTING_ENTRY;
>
>  typedef struct _CLOCK_CONDITION_SETTING_INFO{
>    USHORT usEntrySize;
> -  CLOCK_CONDITION_SETTING_ENTRY asClkCondSettingEntry[1];
> +  CLOCK_CONDITION_SETTING_ENTRY asClkCondSettingEntry[];
>  }CLOCK_CONDITION_SETTING_INFO;
>
>  typedef struct _PHY_CONDITION_REG_VAL{
> @@ -7346,27 +7346,27 @@ typedef struct _PHY_CONDITION_REG_VAL_V2{
>  typedef struct _PHY_CONDITION_REG_INFO{
>    USHORT usRegIndex;
>    USHORT usSize;
> -  PHY_CONDITION_REG_VAL asRegVal[1];
> +  PHY_CONDITION_REG_VAL asRegVal[];
>  }PHY_CONDITION_REG_INFO;
>
>  typedef struct _PHY_CONDITION_REG_INFO_V2{
>    USHORT usRegIndex;
>    USHORT usSize;
> -  PHY_CONDITION_REG_VAL_V2 asRegVal[1];
> +  PHY_CONDITION_REG_VAL_V2 asRegVal[];
>  }PHY_CONDITION_REG_INFO_V2;
>
>  typedef struct _PHY_ANALOG_SETTING_INFO{
>    UCHAR  ucEncodeMode;
>    UCHAR  ucPhySel;
>    USHORT usSize;
> -  PHY_CONDITION_REG_INFO  asAnalogSetting[1];
> +  PHY_CONDITION_REG_INFO  asAnalogSetting[];
>  }PHY_ANALOG_SETTING_INFO;
>
>  typedef struct _PHY_ANALOG_SETTING_INFO_V2{
>    UCHAR  ucEncodeMode;
>    UCHAR  ucPhySel;
>    USHORT usSize;
> -  PHY_CONDITION_REG_INFO_V2  asAnalogSetting[1];
> +  PHY_CONDITION_REG_INFO_V2  asAnalogSetting[];
>  }PHY_ANALOG_SETTING_INFO_V2;
>
>  typedef struct _GFX_HAVESTING_PARAMETERS {
> --
> 2.39.2
>
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

      reply	other threads:[~2023-10-31 20:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-31 17:08 [PATCH v2] drm/radeon: replace 1-element arrays with flexible-array members José Pekkarinen
2023-10-31 20:08 ` Alex Deucher [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CADnq5_NX2XDA87xfgF0ddStKyJofhkCr-rzvnKVkZ2XfM4t=mw@mail.gmail.com' \
    --to=alexdeucher@gmail.com \
    --cc=Xinhui.Pan@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jose.pekkarinen@foxhound.fi \
    --cc=linux-kernel-mentees@lists.linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).