-#ifdef notdef
-#define mdelay(n) (\
- {unsigned long __ms=(n); while (__ms--) udelay(1000);})
-#else
-#define mdelay(n) (\
- (__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
- ({unsigned long __ms=(n); while (__ms--) udelay(1000);}))
-#endif
+#define mdelay(n) ( \
+ { \
+ static int warned=0; \
+ unsigned long __ms=(n); \
+ WARN_ON(in_irq() && !(warned++)); \
+ while (__ms--) udelay(1000); \
+ })