Subject: Re: [PATCH net-next] drivers/net: Remove boolean comparisons to true/false

From: "Arend van Spriel" <[email-masked]>
Date: Fri, 10 Feb 2012 10:50:24 +0100

On 02/10/2012 10:32 AM, David Laight wrote:
>  
>> -	u32 func_encode = func |
>> -			((is_Pf == true ? 1 : 0) <<
> IGU_FID_ENCODE_IS_PF_SHIFT);
>> +	u32 func_encode = func | (is_Pf ? 1 : 0) <<
> IGU_FID_ENCODE_IS_PF_SHIFT;
> 
> This sort of thing is why I personally don't like 'bool' at all.
> If 'is_Pf' were an integer type that is known to only contain 0 or 1
> then the code can just be:

Properly chosing the bool type is not what is being handled by the
patch. Easiest way to convert would be using double inversion:

u32 func_encode = func | (!!is_Pf << IGU_FID_ENCODE_IS_PF_SHIFT);

The parenthesis are not needed due to operator precedence, but is more
clear this way (to me at least).

Gr. AvS