aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2005-11-05 02:02:54 +0900
committerRalf Baechle <ralf@linux-mips.org>2005-11-07 18:05:39 +0000
commita0f08209c685b4f7dccaf013da74e0e80986c477 (patch)
tree4226fd9fc00daa4db855ba5df0e12e990f55efe6
parentUse rtc_lock to protect RTC operations (diff)
downloadlinux-dev-a0f08209c685b4f7dccaf013da74e0e80986c477.tar.xz
linux-dev-a0f08209c685b4f7dccaf013da74e0e80986c477.zip
Define MAX_UDELAY_MS
If HZ was 1000, mdelay(2) cause overflow on multiplication in __udelay. We should define MAX_UDELAY_MS properly to prevent this. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--include/asm-mips/delay.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/asm-mips/delay.h b/include/asm-mips/delay.h
index 85435a8d4e52..48d00cccdafa 100644
--- a/include/asm-mips/delay.h
+++ b/include/asm-mips/delay.h
@@ -84,4 +84,13 @@ static inline void __udelay(unsigned long usecs, unsigned long lpj)
#define udelay(usecs) __udelay((usecs),__udelay_val)
+/* make sure "usecs *= ..." in udelay do not overflow. */
+#if HZ >= 1000
+#define MAX_UDELAY_MS 1
+#elif HZ <= 200
+#define MAX_UDELAY_MS 5
+#else
+#define MAX_UDELAY_MS (1000 / HZ)
+#endif
+
#endif /* _ASM_DELAY_H */