On Wed, Sep 05, 2018 at 10:38:00AM -0600, Jason Gunthorpe wrote:
On Wed, Sep 05, 2018 at 08:10:25AM +0300, Leon Romanovsky wrote:
quoted
quoted
quoted
- int en_encap_decap = !!(flags & MLX5_FLOW_TABLE_TUNNEL_EN);
+ int en_encap = !!(flags & MLX5_FLOW_TABLE_TUNNEL_EN_ENCAP);
+ int en_decap = !!(flags & MLX5_FLOW_TABLE_TUNNEL_EN_DECAP);
Yuk, please don't use !!.
bool en_decap = flags & MLX5_FLOW_TABLE_TUNNEL_EN_DECAP;
We need to provide en_encap and en_decap as an input to MLX5_SET(...)
which is passed to FW as 0 or 1.
Boolean type is declared in C as int and treated as zero for false
and any other value for true,
No, that isn't right, the kernel uses C99's _Bool intrinsic type, which
is guaranteed to only hold 0 or 1 by the compiler.
See types.h:
typedef _Bool bool;
Exciting, it took me a while to find C99 standard and relevant 6.3.1.2.
Anyway, this patch didn't change previous functionality, which used "!!"
convention.
Thanks
Jason