net/mlx5: fix compiling issue of zero-size array
Checks
Commit Message
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
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.
@@ -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 */