![]() | |||||||||||||
Messages in this thread Patch in this message |
Jeff Garzik <jgarzik@pobox.com> wrote:
>
> Something is definitely screwy with the latest -bk.
Would you believe that there is a totally separate bug in the latest -mm
which has exactly the same symptoms?
mark_offset_tsc() does
if (lost && abs(delay - delay_at_last_interrupt) > (900000/HZ))
jiffies_64++;
which is doing abs(unsigned long).
Which works OK if abs() in a function, but I made it a macro.
This fixes it up.
diff -puN include/linux/kernel.h~abs-fix-fix include/linux/kernel.h
--- 25/include/linux/kernel.h~abs-fix-fix 2004-06-21 01:42:24.283873616 -0700
+++ 25-akpm/include/linux/kernel.h 2004-06-21 01:43:08.150204920 -0700
@@ -55,7 +55,12 @@ void __might_sleep(char *file, int line)
#endif
#define abs(x) ({ \
- typeof(x) __x = (x); \
+ int __x = (x); \
+ (__x < 0) ? -__x : __x; \
+ })
+
+#define labs(x) ({ \
+ long __x = (x); \
(__x < 0) ? -__x : __x; \
})
_
-
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/
| ||||||||||||
| Last update: 2005-03-22 14:04 [from the cache] ©2003-2008 | |||||||||||||