Re: [PATCH] Remove pointless <0 comparison for unsigned variablein fs/fcntl.c
From: Jesper Juhl
Date: Tue Nov 23 2004 - 04:47:12 EST
Matthew Wilcox wrote:
On Sun, Nov 21, 2004 at 11:55:23PM +0100, Jesper Juhl wrote:
This patch removes a pointless comparison. "arg" is an unsigned long, thus
it can never be <0, so testing that is pointless.
Signed-off-by: Jesper Juhl <juhl-lkml@xxxxxx>
case F_SETSIG:
/* arg == 0 restores default behaviour. */
- if (arg < 0 || arg > _NSIG) {
+ if (arg > _NSIG) {
break;
I've seen patches like this before. I'm generally in favour of removing
the unnecessary test, but Linus rejected it on the grounds the compiler
shouldn't be warning about it and it's better to be more explicit about
the range test. Maybe he's changed his mind between then and now ;-)
Let's find out.
Linus, would you accept patches like this?
I've been building recent kernels with -W and there are tons of places
with similar comparisons like the one above, as well as places where
signed and unsigned values are compared, places where values are
potentially truncated in signed/unsigned assignments and similar.
At the very least a review of these code locations to make sure they are
all safe would make sense, and I think it would also make sense to get
rid of the comparisons that always evaluate true or false due to the
signedness or range of datatypes.
I probably won't be able to properly evaluate/review *all* the instances
of this in the kernel, but I don't mind spending some time reviewing
what I can and submit patches, but I don't want to waste my time with it
if you already know up-front that you'll just be dropping all such
patches. Or is this up to the individual maintainers to accept/reject?
If so, then I'll go ahead and submit patches, then the individual
maintainers can ack/nack as they please.
Comments?
--
Jesper Juhl
-
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/