Subject: [PATCH] define MAX_UDELAY_MS

From: Atsushi Nemoto <[email-masked]>
Date: Sat, 05 Nov 2005 02:02:54 +0900 (JST)

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 <[email-masked]>

diff --git a/include/asm-mips/delay.h b/include/asm-mips/delay.h
--- a/include/asm-mips/delay.h
+++ b/include/asm-mips/delay.h
@@ -84,4 +84,13 @@ static inline void __udelay(unsigned lon
 
 #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 */

---

From: Ralf Baechle <[email-masked]>
Date: Fri, 4 Nov 2005 17:18:05 +0000

> __udelay.  We should define MAX_UDELAY_MS properly to prevent this.

Applied,

  Ralf