On Wed, Feb 1, 2017 at 1:17 PM, David Laight <david.lai...@aculab.com> wrote: > From: Saeed Mahameed >> Sent: 31 January 2017 20:59 >> From: Or Gerlitz <ogerl...@mellanox.com> >> >> For some reason, sparse doesn't like using an expression of type (!x) >> with a bitwise | and &. In order to mitigate that, we use a local >> variable. >> >> Since getting a typeof(bitfield) is incorrect, we cast such cases. > ... >> + MLX5_SET(fte_match_set_lyr_2_4, headers_c, first_prio, >> (u8)mask->vlan_priority); > > Ugg nasty casts... > ... >> #define MLX5_SET(typ, p, fld, v) do { \ >> + typeof(v) _v = v; \ > .. > > Why not just 'unsigned int _v = v;
Yeah, basically we could have allocate (use) the max size and assign. We preferred to allocate the specific instance size and use this, as using t he required size is cleaner. Or.