2023-08-02 05:17:08

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH 0/4][next] i40e: Replace one-element arrays with flexible-array members

Replace one-element arrays with flexible-array members in multiple
structures.

This results in no differences in binary output.

Gustavo A. R. Silva (4):
i40e: Replace one-element array with flex-array member in struct
i40e_package_header
i40e: Replace one-element array with flex-array member in struct
i40e_profile_segment
i40e: Replace one-element array with flex-array member in struct
i40e_section_table
i40e: Replace one-element array with flex-array member in struct
i40e_profile_aq_section

drivers/net/ethernet/intel/i40e/i40e_ddp.c | 4 ++--
drivers/net/ethernet/intel/i40e/i40e_type.h | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)

--
2.34.1



2023-08-02 05:20:45

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH 3/4][next] i40e: Replace one-element array with flex-array member in struct i40e_section_table

One-element and zero-length arrays are deprecated. So, replace
one-element array in struct i40e_section_table with flexible-array
member.

This results in no differences in binary output.

Link: https://github.com/KSPP/linux/issues/335
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
index f7a984304b65..010261a10f56 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
@@ -1492,7 +1492,7 @@ struct i40e_profile_segment {

struct i40e_section_table {
u32 section_count;
- u32 section_offset[1];
+ u32 section_offset[];
};

struct i40e_profile_section_header {
--
2.34.1


2023-08-02 05:41:21

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH 1/4][next] i40e: Replace one-element array with flex-array member in struct i40e_package_header

One-element and zero-length arrays are deprecated. So, replace
one-element array in struct i40e_package_header with flexible-array
member.

The `+ sizeof(u32)` adjustments ensure that there are no differences
in binary output.

Link: https://github.com/KSPP/linux/issues/335
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/net/ethernet/intel/i40e/i40e_ddp.c | 4 ++--
drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_ddp.c b/drivers/net/ethernet/intel/i40e/i40e_ddp.c
index 7e8183762fd9..0db6f5e3cfcc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ddp.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ddp.c
@@ -220,7 +220,7 @@ static bool i40e_ddp_is_pkg_hdr_valid(struct net_device *netdev,
netdev_err(netdev, "Invalid DDP profile - size is bigger than 4G");
return false;
}
- if (size < (sizeof(struct i40e_package_header) +
+ if (size < (sizeof(struct i40e_package_header) + sizeof(u32) +
sizeof(struct i40e_metadata_segment) + sizeof(u32) * 2)) {
netdev_err(netdev, "Invalid DDP profile - size is too small.");
return false;
@@ -281,7 +281,7 @@ int i40e_ddp_load(struct net_device *netdev, const u8 *data, size_t size,
if (!i40e_ddp_is_pkg_hdr_valid(netdev, pkg_hdr, size))
return -EINVAL;

- if (size < (sizeof(struct i40e_package_header) +
+ if (size < (sizeof(struct i40e_package_header) + sizeof(u32) +
sizeof(struct i40e_metadata_segment) + sizeof(u32) * 2)) {
netdev_err(netdev, "Invalid DDP recipe size.");
return -EINVAL;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
index 388c3d36d96a..c3d5fe12059a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
@@ -1456,7 +1456,7 @@ struct i40e_ddp_version {
struct i40e_package_header {
struct i40e_ddp_version version;
u32 segment_count;
- u32 segment_offset[1];
+ u32 segment_offset[];
};

/* Generic segment header */
--
2.34.1


2023-08-02 06:45:06

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH 4/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_aq_section

One-element and zero-length arrays are deprecated. So, replace
one-element array in struct i40e_profile_aq_section with
flexible-array member.

This results in no differences in binary output.

Link: https://github.com/KSPP/linux/issues/335
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
index 010261a10f56..b9d50218344b 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
@@ -1524,7 +1524,7 @@ struct i40e_profile_aq_section {
u16 flags;
u8 param[16];
u16 datalen;
- u8 data[1];
+ u8 data[];
};

struct i40e_profile_info {
--
2.34.1


2023-08-02 06:47:37

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH 2/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_segment

One-element and zero-length arrays are deprecated. So, replace
one-element array in struct i40e_profile_segment with flexible-array
member.

This results in no differences in binary output.

Link: https://github.com/KSPP/linux/issues/335
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
index c3d5fe12059a..f7a984304b65 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
@@ -1487,7 +1487,7 @@ struct i40e_profile_segment {
struct i40e_ddp_version version;
char name[I40E_DDP_NAME_SIZE];
u32 device_table_count;
- struct i40e_device_id_entry device_table[1];
+ struct i40e_device_id_entry device_table[];
};

struct i40e_section_table {
--
2.34.1


2023-08-02 15:34:55

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH 1/4][next] i40e: Replace one-element array with flex-array member in struct i40e_package_header

On Tue, Aug 01, 2023 at 11:05:31PM -0600, Gustavo A. R. Silva wrote:
> One-element and zero-length arrays are deprecated. So, replace
> one-element array in struct i40e_package_header with flexible-array
> member.
>
> The `+ sizeof(u32)` adjustments ensure that there are no differences
> in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/net/ethernet/intel/i40e/i40e_ddp.c | 4 ++--
> drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_ddp.c b/drivers/net/ethernet/intel/i40e/i40e_ddp.c
> index 7e8183762fd9..0db6f5e3cfcc 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_ddp.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_ddp.c
> @@ -220,7 +220,7 @@ static bool i40e_ddp_is_pkg_hdr_valid(struct net_device *netdev,
> netdev_err(netdev, "Invalid DDP profile - size is bigger than 4G");
> return false;
> }
> - if (size < (sizeof(struct i40e_package_header) +
> + if (size < (sizeof(struct i40e_package_header) + sizeof(u32) +

Hi Gustavo,

would it make more sense to use struct_size() here?

> sizeof(struct i40e_metadata_segment) + sizeof(u32) * 2)) {
> netdev_err(netdev, "Invalid DDP profile - size is too small.");
> return false;
> @@ -281,7 +281,7 @@ int i40e_ddp_load(struct net_device *netdev, const u8 *data, size_t size,
> if (!i40e_ddp_is_pkg_hdr_valid(netdev, pkg_hdr, size))
> return -EINVAL;
>
> - if (size < (sizeof(struct i40e_package_header) +
> + if (size < (sizeof(struct i40e_package_header) + sizeof(u32) +
> sizeof(struct i40e_metadata_segment) + sizeof(u32) * 2)) {
> netdev_err(netdev, "Invalid DDP recipe size.");
> return -EINVAL;
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
> index 388c3d36d96a..c3d5fe12059a 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_type.h
> +++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
> @@ -1456,7 +1456,7 @@ struct i40e_ddp_version {
> struct i40e_package_header {
> struct i40e_ddp_version version;
> u32 segment_count;
> - u32 segment_offset[1];
> + u32 segment_offset[];
> };
>
> /* Generic segment header */
> --
> 2.34.1
>
>

2023-08-02 16:28:37

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH 2/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_segment

On Tue, Aug 01, 2023 at 11:05:59PM -0600, Gustavo A. R. Silva wrote:
> One-element and zero-length arrays are deprecated. So, replace
> one-element array in struct i40e_profile_segment with flexible-array
> member.
>
> This results in no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>

Reviewed-by: Simon Horman <[email protected]>


2023-08-02 16:35:44

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH 3/4][next] i40e: Replace one-element array with flex-array member in struct i40e_section_table

On Tue, Aug 01, 2023 at 11:06:30PM -0600, Gustavo A. R. Silva wrote:
> One-element and zero-length arrays are deprecated. So, replace
> one-element array in struct i40e_section_table with flexible-array
> member.
>
> This results in no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>

Reviewed-by: Simon Horman <[email protected]>


2023-08-02 16:36:29

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH 4/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_aq_section

On Tue, Aug 01, 2023 at 11:07:06PM -0600, Gustavo A. R. Silva wrote:
> One-element and zero-length arrays are deprecated. So, replace
> one-element array in struct i40e_profile_aq_section with
> flexible-array member.
>
> This results in no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>

Reviewed-by: Simon Horman <[email protected]>


2023-08-10 11:27:42

by Pucha, HimasekharX Reddy

[permalink] [raw]
Subject: RE: [Intel-wired-lan] [PATCH 3/4][next] i40e: Replace one-element array with flex-array member in struct i40e_section_table

> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of Gustavo A. R. Silva
> Sent: Wednesday, August 2, 2023 10:37 AM
> To: Brandeburg, Jesse <[email protected]>; Nguyen, Anthony L <[email protected]>; David S. Miller <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni <[email protected]>
> Cc: [email protected]; [email protected]; [email protected]; [email protected]; Gustavo A. R. Silva <[email protected]>
> Subject: [Intel-wired-lan] [PATCH 3/4][next] i40e: Replace one-element array with flex-array member in struct i40e_section_table
>
> One-element and zero-length arrays are deprecated. So, replace one-element array in struct i40e_section_table with flexible-array member.
>
> This results in no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)


2023-08-10 12:19:50

by Pucha, HimasekharX Reddy

[permalink] [raw]
Subject: RE: [Intel-wired-lan] [PATCH 2/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_segment

> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of Gustavo A. R. Silva
> Sent: Wednesday, August 2, 2023 10:36 AM
> To: Brandeburg, Jesse <[email protected]>; Nguyen, Anthony L <[email protected]>; David S. Miller <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni <[email protected]>
> Cc: [email protected]; [email protected]; [email protected]; [email protected]; Gustavo A. R. Silva <[email protected]>
> Subject: [Intel-wired-lan] [PATCH 2/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_segment
>
> One-element and zero-length arrays are deprecated. So, replace one-element array in struct i40e_profile_segment with flexible-array member.
>
> This results in no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)


2023-08-10 12:37:13

by Pucha, HimasekharX Reddy

[permalink] [raw]
Subject: RE: [Intel-wired-lan] [PATCH 1/4][next] i40e: Replace one-element array with flex-array member in struct i40e_package_header

> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of Gustavo A. R. Silva
> Sent: Wednesday, August 2, 2023 10:36 AM
> To: Brandeburg, Jesse <[email protected]>; Nguyen, Anthony L <[email protected]>; David S. Miller <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni <[email protected]>
> Cc: [email protected]; [email protected]; [email protected]; [email protected]; Gustavo A. R. Silva <[email protected]>
> Subject: [Intel-wired-lan] [PATCH 1/4][next] i40e: Replace one-element array with flex-array member in struct i40e_package_header
>
> One-element and zero-length arrays are deprecated. So, replace one-element array in struct i40e_package_header with flexible-array member.
>
> The `+ sizeof(u32)` adjustments ensure that there are no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/net/ethernet/intel/i40e/i40e_ddp.c | 4 ++-- drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>

Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)


2023-08-10 13:05:55

by Pucha, HimasekharX Reddy

[permalink] [raw]
Subject: RE: [Intel-wired-lan] [PATCH 4/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_aq_section

> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of Gustavo A. R. Silva
> Sent: Wednesday, August 2, 2023 10:37 AM
> To: Brandeburg, Jesse <[email protected]>; Nguyen, Anthony L <[email protected]>; David S. Miller <[email protected]>; Eric Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni <[email protected]>
> Cc: [email protected]; [email protected]; [email protected]; [email protected]; Gustavo A. R. Silva <[email protected]>
> Subject: [Intel-wired-lan] [PATCH 4/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_aq_section
>
> One-element and zero-length arrays are deprecated. So, replace one-element array in struct i40e_profile_aq_section with flexible-array member.
>
> This results in no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)


2023-08-10 18:02:17

by Justin Stitt

[permalink] [raw]
Subject: Re: [PATCH 2/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_segment

On Tue, Aug 01, 2023 at 11:05:59PM -0600, Gustavo A. R. Silva wrote:
> One-element and zero-length arrays are deprecated. So, replace
> one-element array in struct i40e_profile_segment with flexible-array
> member.
>
> This results in no differences in binary output.
>
> Link: https://github.com/KSPP/linux/issues/335
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Tested-by: Justin Stitt <[email protected]>

>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
> index c3d5fe12059a..f7a984304b65 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_type.h
> +++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
> @@ -1487,7 +1487,7 @@ struct i40e_profile_segment {
> struct i40e_ddp_version version;
> char name[I40E_DDP_NAME_SIZE];
> u32 device_table_count;
> - struct i40e_device_id_entry device_table[1];
> + struct i40e_device_id_entry device_table[];
> };
>
> struct i40e_section_table {
> --
> 2.34.1
>

2023-08-10 22:24:45

by Justin Stitt

[permalink] [raw]
Subject: Re: [PATCH 2/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_segment

On Thu, Aug 10, 2023 at 05:34:04PM +0000, Justin Stitt wrote:
> On Tue, Aug 01, 2023 at 11:05:59PM -0600, Gustavo A. R. Silva wrote:
> > One-element and zero-length arrays are deprecated. So, replace
> > one-element array in struct i40e_profile_segment with flexible-array
> > member.
> >
> > This results in no differences in binary output.
> >
> > Link: https://github.com/KSPP/linux/issues/335
> > Signed-off-by: Gustavo A. R. Silva <[email protected]>
> > ---
> > drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> Tested-by: Justin Stitt <[email protected]>
Whoops, this should be:
Reviewed-by: Justin Stitt <[email protected]>

I did not test, I just verified there are no binary differences produced
by this patch.

>
> >
> > diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
> > index c3d5fe12059a..f7a984304b65 100644
> > --- a/drivers/net/ethernet/intel/i40e/i40e_type.h
> > +++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
> > @@ -1487,7 +1487,7 @@ struct i40e_profile_segment {
> > struct i40e_ddp_version version;
> > char name[I40E_DDP_NAME_SIZE];
> > u32 device_table_count;
> > - struct i40e_device_id_entry device_table[1];
> > + struct i40e_device_id_entry device_table[];
> > };
> >
> > struct i40e_section_table {
> > --
> > 2.34.1
> >

2023-08-10 22:47:58

by Gustavo A. R. Silva

[permalink] [raw]
Subject: Re: [Intel-wired-lan] [PATCH 2/4][next] i40e: Replace one-element array with flex-array member in struct i40e_profile_segment



On 8/10/23 14:49, Justin Stitt wrote:
> On Thu, Aug 10, 2023 at 05:34:04PM +0000, Justin Stitt wrote:
>> On Tue, Aug 01, 2023 at 11:05:59PM -0600, Gustavo A. R. Silva wrote:
>>> One-element and zero-length arrays are deprecated. So, replace
>>> one-element array in struct i40e_profile_segment with flexible-array
>>> member.
>>>
>>> This results in no differences in binary output.
>>>
>>> Link: https://github.com/KSPP/linux/issues/335
>>> Signed-off-by: Gustavo A. R. Silva <[email protected]>
>>> ---
>>> drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>> Tested-by: Justin Stitt <[email protected]>
> Whoops, this should be:
> Reviewed-by: Justin Stitt <[email protected]>
>
> I did not test, I just verified there are no binary differences produced
> by this patch.

In that case, `Build-tested-by` seems more appropriate.

Anyways, the series has been applied already.

--
Gustavo