Re: Three if-clauses of constant logic value; char drivers for kernel 2.4.33.3

From: Willy Tarreau
Date: Sat Feb 03 2007 - 05:08:09 EST


Hi Mats,

On Tue, Dec 19, 2006 at 09:59:37PM +0100, Mats Erik Andersson wrote:
> Hi there, all masters of kernel code,
>
> I just discovered that the kernel code for 2.4.33.3 contains three
> if-statements that never can change their values, whence they should
> be repaired or eliminated. In source directory linux/drivers/char the
> files vt.c and keyboard.c produce these warning upon compilation:
>
> vt.c:166: varning: comparison is always false due to limited range
> of data type
> vt.c:289: varning: comparison is always false due to limited range
> of data type
> keyboard.c:640: varning: comparison is always true due to limited
> range of data type
>
> I did the compilation with gcc 3.3.5 on Debian Sarge. This behaviour
> appeared first for kernel 2.2.19, since I wanted to revive the old
> minirtl edition, but to my surprise the same warnings appear also
> with the brand new kernel 2.4.33.3.

I've looked at your warnings. They're all totally harmless, and caused
by safety checks against some defines in those functions. While in 2.6,
the two checks in vt.c have been removed, I can't be sure that nobody
in 2.4 changes the defines (eg: embedded systems) in which case the
checks would be totally valid.

So I will leave them. It may look annoying but it's a safe measure IMHO.

Best regards,
Willy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/