net/mlx5: fix compiling issue of zero-size array

Message ID 20181015014500.6004-1-jackmin@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Shahaf Shuler
Headers
Series net/mlx5: fix compiling issue of zero-size array |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK

Commit Message

Xiaoyu Min Oct. 15, 2018, 1:45 a.m. UTC
  If the build environment hasn't 'linux/tc_act/tc_pedit.h',
compiler will use needed structs defined in mlx5_flow_tcf.c.

However, there is a zero-size array defined in one struct and
ISO C forbids this when -Wpedantic is set by debug mode.

Simply put __extension__ keyword before the struct in question.

Fixes: e696b2051c8c ("net/mlx5: rewrite IP address UDP/TCP port by E-Switch")

Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow_tcf.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)
  

Comments

Shahaf Shuler Oct. 15, 2018, 5:41 a.m. UTC | #1
Monday, October 15, 2018 4:45 AM, Jack Min:
> Subject: [PATCH] net/mlx5: fix compiling issue of zero-size array
> 
> If the build environment hasn't 'linux/tc_act/tc_pedit.h', compiler will use
> needed structs defined in mlx5_flow_tcf.c.
> 
> However, there is a zero-size array defined in one struct and ISO C forbids
> this when -Wpedantic is set by debug mode.
> 
> Simply put __extension__ keyword before the struct in question.
> 
> Fixes: e696b2051c8c ("net/mlx5: rewrite IP address UDP/TCP port by E-
> Switch")
> 
> Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>

Applied to next-net-mlx, thanks.

Ferruh, you will probably want to squash this to the relevant commit.
  

Patch

diff --git a/drivers/net/mlx5/mlx5_flow_tcf.c b/drivers/net/mlx5/mlx5_flow_tcf.c
index aaafaf52d..da4bc632d 100644
--- a/drivers/net/mlx5/mlx5_flow_tcf.c
+++ b/drivers/net/mlx5/mlx5_flow_tcf.c
@@ -93,19 +93,20 @@  enum pedit_cmd {
 };
 
 struct tc_pedit_key {
-	__u32           mask;  /* AND */
-	__u32           val;   /*XOR */
-	__u32           off;  /*offset */
-	__u32           at;
-	__u32           offmask;
-	__u32           shift;
+	__u32 mask; /* AND */
+	__u32 val; /*XOR */
+	__u32 off; /*offset */
+	__u32 at;
+	__u32 offmask;
+	__u32 shift;
 };
 
+__extension__
 struct tc_pedit_sel {
 	tc_gen;
-	unsigned char           nkeys;
-	unsigned char           flags;
-	struct tc_pedit_key     keys[0];
+	unsigned char nkeys;
+	unsigned char flags;
+	struct tc_pedit_key keys[0];
 };
 
 #endif /* HAVE_TC_ACT_VLAN */