Subject: Re: [PATCH][ppc] logical/bitand typo in powerpc/boot/4xx.c

From: Joe Perches <[email-masked]>
Date: Wed, 23 Jan 2008 15:05:27 -0800

On Wed, 2008-01-23 at 23:37 +0100, Roel Kluin wrote:
> Signed-off-by: Roel Kluin <[email-masked]>
> ---
> diff --git a/arch/powerpc/boot/4xx.c b/arch/powerpc/boot/4xx.c
> index ebf9e21..dcfb459 100644
> --- a/arch/powerpc/boot/4xx.c
> +++ b/arch/powerpc/boot/4xx.c
> @@ -104,7 +104,7 @@ void ibm4xx_denali_fixup_memsize(void)
>  	val = DDR_GET_VAL(val, DDR_CS_MAP, DDR_CS_MAP_SHIFT);
>  	cs = 0;
>  	while (val) {
> -		if (val && 0x1)
> +		if (val & 0x1)
>  			cs++;
>  		val = val >> 1;

I think this pattern should be added to checkpatch

Signed-off-by: Joe Perches <[email-masked]>

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 579f50f..147e573 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1337,6 +1337,11 @@ sub process {
 			}
 		}
 
+# Check for bitwise tests written as boolean
+		if ($line =~ /\&\&\s*0[xX]/) {
+			WARN("boolean test with hexadecimal, perhaps just 1 \&?\n" . $herecurr);
+		}
+
 # if and else should not have general statements after it
 		if ($line =~ /^.\s*(?:}\s*)?else\b(.*)/ &&
 		    $1 !~ /^\s*(?:\sif|{|\\|$)/) {