On 09/12/2007 01:09 AM, Björn Steinbrink wrote:
On 2007.09.12 00:19:09 +0200, Rene Herman wrote:
On 09/12/2007 12:15 AM, Adrian McMenamin wrote:
On 11/09/2007, Rene Herman <[email protected]> wrote:
On 09/12/2007 12:05 AM, Adrian McMenamin wrote:
OK, why does this line occasionally return true:
What exactly is "occassionally"? Does it happen more than once per
boot? If not, and it happens after a certain time after booting, it
might be wrapping of the jiffie counter (see below).
if ((maple_dev->interval > 0) && (jiffies >maple_dev->when))
while this one never does (no other changes made):
if ((maple_dev->interval > 0) && (time_after(jiffies,
maple_dev->when)))
Is maple_dev->when an unsigned long?
Yes. Does that make a difference?
If it had been a signed type, it could've wrapped to something you didn't
expect, explaining the difference at least...
With an unsigned long, the only diference should be that time_after() deals
with jiffie wrapping which I assume is not an actual problem here. I'll
retreat into the shades again... ;-(
If "occasionally" is limited to once per boot, it might be jiffie
wrapping. IIRC jiffies are initialized so that they wrap after about 5
minutes of uptime to reveal such bugs without forcing you to wait for
ages just to have the counter wrap for the first time.
Yes, but if jiifie wrapping was the problem, I'd expect the contrary
behaviour with the time_after() one hitting while the > one does not.
Rene.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]