Re: wavelan has fatal error with 2.4.0 (but worked in 2.4.0-test12)

Alan Cox (alan@lxorguk.ukuu.org.uk)
Tue, 9 Jan 2001 17:48:47 +0000 (GMT)


> > It is a bug in the driver.
>
> Please check again the code and point me the invalid
> udelay(). You will realise that there is no delay in the driver that
> is longer than 100ms.

The udelay limit is set a lot lower than 100mS. It has to be somewhat lower
otherwise you have to do two levels of loops which will throw small udelay
timings a fair whack.

> The bug is that udelay() can't be passed a variable but only a
> constant. Therefore bug in udelay().

Sounds like a compiler bug.

#define udelay(n) (__builtin_constant_p(n) ? \
((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) : \
__udelay(n))

non constants are covered.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/