== 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]]