Re: [PATCH] net/ipv4/*, net/core/neighbour.c jiffies cleanup

David S. Miller (davem@redhat.com)
Wed, 07 Nov 2001 17:09:40 -0800 (PST)


From: Tim Schmielau <tim@physik3.uni-rostock.de>
Date: Thu, 8 Nov 2001 01:58:45 +0100 (CET)

Please consider to change the appended ones.

--- linux-2.4.14/net/ipv4/route.c Wed Oct 31 00:08:12 2001
+++ linux-2.4.14-jiffies64/net/ipv4/route.c Wed Nov 7 22:51:23 2001
@@ -395,7 +395,7 @@
write_unlock(&rt_hash_table[i].lock);

/* Fallback loop breaker. */
- if ((jiffies - now) > 0)
+ if ((long)(jiffies - now) > 0)
break;
}
rover = i;

Nothing is wrong with this case. Jiffies is guarenteed to be greater
than or equal to "now". There is no need to cast it to a signed type.

Let me say this again, in another way :-)

SOME_WRAPPED_AROUND_SMALL_VALUE

MINUS

SOME_HUGE_ABOUT_TO_WRAP_AROUND_VALUE

will have the same result, signed or not. Check this out!

(gdb) p (long)0x2 - (long)0xfffffff8
$1 = 10
(gdb) p (unsigned long)0x2 - (unsigned long)0xfffffff8
$2 = 10

It's math and the computer comfirms it! :-)))

Please show me a failure case for this statement if you disagree
with me.

--- linux-2.4.14/net/ipv4/ipconfig.c Wed Oct 31 00:08:12 2001
+++ linux-2.4.14-jiffies64/net/ipv4/ipconfig.c Wed Nov 7 23:28:47 2001

These cases are indeed buggy. I'd rather fix these ones with
time_{after,before}() though. And again, your "signed" casts
are totally superfluous.

Franks a lot,
David S. Miller
davem@redhat.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/