Re: [PATCH] drm/amd/pm: replace 1-element arrays with flexible-array members

From: José Pekkarinen
Date: Thu Nov 09 2023 - 06:54:14 EST


On 2023-11-09 11:06, Greg KH wrote:
On Thu, Nov 09, 2023 at 10:43:50AM +0200, José Pekkarinen wrote:
On 2023-11-08 09:29, Greg KH wrote:
> On Wed, Nov 08, 2023 at 08:54:35AM +0200, José Pekkarinen wrote:
> > The following case seems to be safe to be replaced with a flexible
> > array
> > to clean up the added coccinelle warning. This patch will just do it.
> >
> > drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.h:76:38-63:
> > 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@xxxxxxxxxxx>
> > ---
> > drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.h
> > b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.h
> > index c7b61222d258..1ce4087005f0 100644
> > --- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.h
> > +++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.h
> > @@ -73,7 +73,7 @@ struct smu8_register_index_data_pair {
> >
> > struct smu8_ih_meta_data {
> > uint32_t command;
> > - struct smu8_register_index_data_pair register_index_value_pair[1];
> > + struct smu8_register_index_data_pair register_index_value_pair[];
>
> Did you just change this structure size without any need to change any
> code as well? How was this tested?

I didn't find any use of that struct member, if I missed
something here, please let me know and I'll happily address any
needed further work.

I don't think this is even a variable array. It's just a one element
one, which is fine, don't be confused by the coccinelle "warning" here,
it's fired many false-positives and you need to verify this properly
with the driver authors first before changing anything.

My apologies to you, and anybody that feels the same, it is not my
intention to bother with mistaken patches, I just assume that this patch
or any other from me, will go to review process, where it should be fine
if the patch is right, wrong, need further work, or further testing either
from my side or anybody else, and at the end of the day I need to do
patches if I want to find my mentorship patches, and graduate.

In short, you just changed the size of this structure, are you _sure_
you can do that? And yes, it doesn't look like this field is used, but
the structure is, so be careful.

I don't know, let check it out together and see where this goes.

José.