[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6DB0277E67@AcuExch.aculab.com>
Date: Wed, 1 Feb 2017 17:02:58 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Or Gerlitz' <gerlitz.or@...il.com>
CC: Saeed Mahameed <saeedm@...lanox.com>,
"David S. Miller" <davem@...emloft.net>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"Or Gerlitz" <ogerlitz@...lanox.com>,
Matan Barak <matanb@...lanox.com>
Subject: RE: [net-next 1/8] net/mlx5: Fixed static checker warnings
From: Or Gerlitz
> Sent: 01 February 2017 16:40
> On Wed, Feb 1, 2017 at 1:17 PM, David Laight <David.Laight@...lab.com> wrote:
> > From: Saeed Mahameed
> >> Sent: 31 January 2017 20:59
> >> From: Or Gerlitz <ogerlitz@...lanox.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.
Doesn't make a blind bit of difference.
The value is promoted to 'int' before being used in the expression.
You might as well do the promotion earlier.
David
Powered by blists - more mailing lists