Where is __bad_udelay()?
It is a compile-time trap because you use a too high (constant) value for udelay(). Use ndelay() or mdelay() - depending on the value.
See also e.g. [http://www.ussg.iu.edu/hypermail/linux/kernel/0010.1/0505.html http://www.ussg.iu.edu/hypermail/linux/kernel/0010.1/0505.html]