diff mbox series

[v2] ath6kl: replace one-element array with flexible-array member

Message ID 20230804045554.6934-1-rauji.raut@gmail.com (mailing list archive)
State Rejected
Delegated to: Johannes Berg
Headers show
Series [v2] ath6kl: replace one-element array with flexible-array member | expand

Commit Message

Atul Raut Aug. 4, 2023, 4:55 a.m. UTC
One-element arrays are no longer relevant, and their
place has been taken by flexible array members thus,
use a flexible-array member to replace the one-element
array in struct ath6kl_usb_ctrl_diag_cmd_write

This fixes warnings such as:
./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: 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: Atul Raut <rauji.raut@gmail.com>
---
 drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Greg Kroah-Hartman Aug. 4, 2023, 5:15 a.m. UTC | #1
On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
> One-element arrays are no longer relevant, and their
> place has been taken by flexible array members thus,
> use a flexible-array member to replace the one-element
> array in struct ath6kl_usb_ctrl_diag_cmd_write
> 
> This fixes warnings such as:
> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: 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: Atul Raut <rauji.raut@gmail.com>
> ---
>  drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
> index 5220809841a6..c8ecc9e85897 100644
> --- a/drivers/net/wireless/ath/ath6kl/usb.c
> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>  	__le32 cmd;
>  	__le32 address;
>  	__le32 value;
> -	__le32 _pad[1];
> +	__le32 _pad[];

Are you sure this is actually a variable length array?

And you just changed the size of this structure, are you sure this is
correct?

There have been lots of work on this type of thing in the past on the
hardening mailing list, I suggest you work there with the developers to
see if this is even a valid change first.

thanks,

greg k-h
Kalle Valo Aug. 4, 2023, 7:10 a.m. UTC | #2
Greg KH <gregkh@linuxfoundation.org> writes:

> On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
>
>> One-element arrays are no longer relevant, and their
>> place has been taken by flexible array members thus,
>> use a flexible-array member to replace the one-element
>> array in struct ath6kl_usb_ctrl_diag_cmd_write
>> 
>> This fixes warnings such as:
>> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: 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: Atul Raut <rauji.raut@gmail.com>
>> ---
>>  drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
>> index 5220809841a6..c8ecc9e85897 100644
>> --- a/drivers/net/wireless/ath/ath6kl/usb.c
>> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
>> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>>  	__le32 cmd;
>>  	__le32 address;
>>  	__le32 value;
>> -	__le32 _pad[1];
>> +	__le32 _pad[];
>
> Are you sure this is actually a variable length array?

It's not, it's just padding. We both told this in v1:

https://patchwork.kernel.org/project/linux-wireless/patch/20230731012941.21875-1-rauji.raut@gmail.com/

> And you just changed the size of this structure, are you sure this is
> correct?

This patch is not correct.

Atul, ALWAYS include a changelog when submitting a new version. Please
carefully read our wiki link below before submitting new patches to
wireless.
Greg Kroah-Hartman Aug. 4, 2023, 9:30 a.m. UTC | #3
On Fri, Aug 04, 2023 at 10:10:37AM +0300, Kalle Valo wrote:
> Greg KH <gregkh@linuxfoundation.org> writes:
> 
> > On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
> >
> >> One-element arrays are no longer relevant, and their
> >> place has been taken by flexible array members thus,
> >> use a flexible-array member to replace the one-element
> >> array in struct ath6kl_usb_ctrl_diag_cmd_write
> >> 
> >> This fixes warnings such as:
> >> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: 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: Atul Raut <rauji.raut@gmail.com>
> >> ---
> >>  drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >> 
> >> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
> >> index 5220809841a6..c8ecc9e85897 100644
> >> --- a/drivers/net/wireless/ath/ath6kl/usb.c
> >> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
> >> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
> >>  	__le32 cmd;
> >>  	__le32 address;
> >>  	__le32 value;
> >> -	__le32 _pad[1];
> >> +	__le32 _pad[];
> >
> > Are you sure this is actually a variable length array?
> 
> It's not, it's just padding. We both told this in v1:
> 
> https://patchwork.kernel.org/project/linux-wireless/patch/20230731012941.21875-1-rauji.raut@gmail.com/

Hey, I'm consistent, nice!  :)

But Atul, that's not good to ignore our review comments.  Usually that
ends up meaning that everyone will then just ignore your submissions,
generally a not-good resolution.

thanks,

greg k-h
Jeff Johnson Aug. 7, 2023, 2:13 p.m. UTC | #4
On 8/4/2023 2:30 AM, Greg KH wrote:
> On Fri, Aug 04, 2023 at 10:10:37AM +0300, Kalle Valo wrote:
>> Greg KH <gregkh@linuxfoundation.org> writes:
>>
>>> On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
>>>
>>>> One-element arrays are no longer relevant, and their
>>>> place has been taken by flexible array members thus,
>>>> use a flexible-array member to replace the one-element
>>>> array in struct ath6kl_usb_ctrl_diag_cmd_write
>>>>
>>>> This fixes warnings such as:
>>>> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: 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: Atul Raut <rauji.raut@gmail.com>
>>>> ---
>>>>   drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
>>>> index 5220809841a6..c8ecc9e85897 100644
>>>> --- a/drivers/net/wireless/ath/ath6kl/usb.c
>>>> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
>>>> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>>>>   	__le32 cmd;
>>>>   	__le32 address;
>>>>   	__le32 value;
>>>> -	__le32 _pad[1];
>>>> +	__le32 _pad[];
>>>
>>> Are you sure this is actually a variable length array?
>>
>> It's not, it's just padding. We both told this in v1:
>>
>> https://patchwork.kernel.org/project/linux-wireless/patch/20230731012941.21875-1-rauji.raut@gmail.com/
> 
> Hey, I'm consistent, nice!  :)
> 
> But Atul, that's not good to ignore our review comments.  Usually that
> ends up meaning that everyone will then just ignore your submissions,
> generally a not-good resolution.
> 
> thanks,
> 
> greg k-h

Since the 'pad' field is never directly accessed, suggest the author 
respin this this to use simply:
	__le32 _pad;

That will prevent others from trying to "fix" this actual one-element 
array in the future.
Atul Raut Aug. 7, 2023, 3:17 p.m. UTC | #5
On Mon, Aug 07, 2023 at 07:13:20AM -0700, Jeff Johnson wrote:
>On 8/4/2023 2:30 AM, Greg KH wrote:
>>On Fri, Aug 04, 2023 at 10:10:37AM +0300, Kalle Valo wrote:
>>>Greg KH <gregkh@linuxfoundation.org> writes:
>>>
>>>>On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
>>>>
>>>>>One-element arrays are no longer relevant, and their
>>>>>place has been taken by flexible array members thus,
>>>>>use a flexible-array member to replace the one-element
>>>>>array in struct ath6kl_usb_ctrl_diag_cmd_write
>>>>>
>>>>>This fixes warnings such as:
>>>>>./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: 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: Atul Raut <rauji.raut@gmail.com>
>>>>>---
>>>>>  drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>>diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
>>>>>index 5220809841a6..c8ecc9e85897 100644
>>>>>--- a/drivers/net/wireless/ath/ath6kl/usb.c
>>>>>+++ b/drivers/net/wireless/ath/ath6kl/usb.c
>>>>>@@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>>>>>  	__le32 cmd;
>>>>>  	__le32 address;
>>>>>  	__le32 value;
>>>>>-	__le32 _pad[1];
>>>>>+	__le32 _pad[];
>>>>
>>>>Are you sure this is actually a variable length array?
>>>
>>>It's not, it's just padding. We both told this in v1:
>>>
>>>https://patchwork.kernel.org/project/linux-wireless/patch/20230731012941.21875-1-rauji.raut@gmail.com/
>>
>>Hey, I'm consistent, nice!  :)
>>
>>But Atul, that's not good to ignore our review comments.  Usually that
>>ends up meaning that everyone will then just ignore your submissions,
>>generally a not-good resolution.
>>
>>thanks,
>>
>>greg k-h
>
>Since the 'pad' field is never directly accessed, suggest the author 
>respin this this to use simply:
>	__le32 _pad;
>
>That will prevent others from trying to "fix" this actual one-element 
>array in the future.
Atul Raut Aug. 7, 2023, 3:31 p.m. UTC | #6
Considering everyone's input/comments, will refrain from altering this or

other submitted patches, as advised.

-Atul

On 8/7/23 07:13, Jeff Johnson wrote:
> On 8/4/2023 2:30 AM, Greg KH wrote:
>> On Fri, Aug 04, 2023 at 10:10:37AM +0300, Kalle Valo wrote:
>>> Greg KH <gregkh@linuxfoundation.org> writes:
>>>
>>>> On Thu, Aug 03, 2023 at 09:55:54PM -0700, Atul Raut wrote:
>>>>
>>>>> One-element arrays are no longer relevant, and their
>>>>> place has been taken by flexible array members thus,
>>>>> use a flexible-array member to replace the one-element
>>>>> array in struct ath6kl_usb_ctrl_diag_cmd_write
>>>>>
>>>>> This fixes warnings such as:
>>>>> ./drivers/net/wireless/ath/ath6kl/usb.c:109:8-12: 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: Atul Raut <rauji.raut@gmail.com>
>>>>> ---
>>>>>   drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/net/wireless/ath/ath6kl/usb.c 
>>>>> b/drivers/net/wireless/ath/ath6kl/usb.c
>>>>> index 5220809841a6..c8ecc9e85897 100644
>>>>> --- a/drivers/net/wireless/ath/ath6kl/usb.c
>>>>> +++ b/drivers/net/wireless/ath/ath6kl/usb.c
>>>>> @@ -106,7 +106,7 @@ struct ath6kl_usb_ctrl_diag_cmd_write {
>>>>>       __le32 cmd;
>>>>>       __le32 address;
>>>>>       __le32 value;
>>>>> -    __le32 _pad[1];
>>>>> +    __le32 _pad[];
>>>>
>>>> Are you sure this is actually a variable length array?
>>>
>>> It's not, it's just padding. We both told this in v1:
>>>
>>> https://patchwork.kernel.org/project/linux-wireless/patch/20230731012941.21875-1-rauji.raut@gmail.com/ 
>>>
>>
>> Hey, I'm consistent, nice!  :)
>>
>> But Atul, that's not good to ignore our review comments. Usually that
>> ends up meaning that everyone will then just ignore your submissions,
>> generally a not-good resolution.
>>
>> thanks,
>>
>> greg k-h
>
> Since the 'pad' field is never directly accessed, suggest the author 
> respin this this to use simply:
>     __le32 _pad;
>
> That will prevent others from trying to "fix" this actual one-element 
> array in the future.
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
index 5220809841a6..c8ecc9e85897 100644
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ b/drivers/net/wireless/ath/ath6kl/usb.c
@@ -106,7 +106,7 @@  struct ath6kl_usb_ctrl_diag_cmd_write {
 	__le32 cmd;
 	__le32 address;
 	__le32 value;
-	__le32 _pad[1];
+	__le32 _pad[];
 } __packed;
 
 struct ath6kl_usb_ctrl_diag_cmd_read {