net/mlx5: fix build with zero-size array
authorXiaoyu Min <jackmin@mellanox.com>
Mon, 15 Oct 2018 01:45:23 +0000 (01:45 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 18 Oct 2018 08:24:39 +0000 (10:24 +0200)
If the build environment doesn't have 'linux/tc_act/tc_pedit.h' header,
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: 2ed2fe5f0a9c ("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

index 1e1102e..4b51a85 100644 (file)
@@ -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 */