Skip to contentSkip to conversation

i40e: Replace one-element arrays with flexible-array members

PATCH In review Gustavo A. R. Silva 5 participants 16 messages Aug 2, 2023 – Aug 10, 2023

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover 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(-)
Signature · 1 line
2.34.1
#1 lore raw

PATCH 1/4 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.

---
 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(-)
drivers/net/ethernet/intel/i40e/i40e_ddp.c +2 -2
index 7e8183762fd9..0db6f5e3cfcc 100644
@@ -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;
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -1
index 388c3d36d96a..c3d5fe12059a 100644
@@ -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 */
Signature · 1 line
2.34.1
#4 lore raw

PATCH 2/4 i40e: Replace one-element array with flex-array member in struct i40e_profile_segment

In reply to Gustavo A. R. Silva

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.

---
 drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -1
index c3d5fe12059a..f7a984304b65 100644
@@ -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 {
Signature · 1 line
2.34.1
#10 lore raw

PATCH 3/4 i40e: Replace one-element array with flex-array member in struct i40e_section_table

In reply to Gustavo A. R. Silva

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.

---
 drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -1
index f7a984304b65..010261a10f56 100644
@@ -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 {
Signature · 1 line
2.34.1
#13 lore raw

PATCH 4/4 i40e: Replace one-element array with flex-array member in struct i40e_profile_aq_section

In reply to Gustavo A. R. Silva

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.

---
 drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -1
index 010261a10f56..b9d50218344b 100644
@@ -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 {
Signature · 1 line
2.34.1
reviewer
#2 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 19 lines · Gustavo A. R. Silva

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.

---
 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(-)
drivers/net/ethernet/intel/i40e/i40e_ddp.c +0 -0
index 7e8183762fd9..0db6f5e3cfcc 100644

drivers/net/ethernet/intel/i40e/i40e_ddp.c static bool i40e_ddp_is_pkg_hdr_valid(struct net_device *netdev, · line 223

Quoted 5 lines
drivers/net/ethernet/intel/i40e/i40e_ddp.c +1 -1
@@ -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?

Quoted 29 lines
drivers/net/ethernet/intel/i40e/i40e_ddp.c +1 -1
 		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;
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -1
index 388c3d36d96a..c3d5fe12059a 100644
@@ -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 */
Signature · 1 line
2.34.1
reviewer Reviewed-by on v1 2/4
#5 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 8 lines · Gustavo A. R. Silva

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.

reviewer Reviewed-by on v1 3/4
#11 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 8 lines · Gustavo A. R. Silva

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.

reviewer Reviewed-by on v1 4/4
#14 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 8 lines · Gustavo A. R. Silva

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.

Tested-by on v1 1/4
#3 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 9 lines

-----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.

Quoted 8 lines

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

---
 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 on v1 2/4
#6 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 9 lines

-----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.

Quoted 8 lines

This results in no differences in binary output.

---
 drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Tested-by on v1 3/4
#12 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 9 lines

-----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.

Quoted 8 lines

This results in no differences in binary output.

---
 drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Tested-by on v1 4/4
#15 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 9 lines

-----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.

Quoted 8 lines

This results in no differences in binary output.

---
drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-

1 file changed, 1 insertion(+), 1 deletion(-)

_______________________________________________
Intel-wired-lan mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

Tested-by on v1 2/4
#7 lore raw

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

In reply to Gustavo A. R. Silva
Quoted 11 lines · Gustavo A. R. Silva

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.

---
 drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 17 lines
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -2
index c3d5fe12059a..f7a984304b65 100644
@@ -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

Reviewed-by
#8 lore raw

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

Quoted 5 lines · Justin Stitt
Quoted 4 lines · Gustavo A. R. Silva

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

Quoted 8 lines
Quoted 7 lines

This results in no differences in binary output.

---
 drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Whoops, this should be:

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

Quoted 18 lines
Quoted 18 lines
drivers/net/ethernet/intel/i40e/i40e_type.h +1 -2
index c3d5fe12059a..f7a984304b65 100644
@@ -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

#9 lore raw

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

Quoted 13 lines · Justin Stitt
Quoted 12 lines · Justin Stitt
Quoted 11 lines · Gustavo A. R. Silva

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.

---
  drivers/net/ethernet/intel/i40e/i40e_type.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 6 lines
Quoted 1 line

Whoops, this should be:

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