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

Jean Tourrilhes (jt@bougret.hpl.hp.com)
Tue, 9 Jan 2001 09:04:27 -0800


On Tue, Jan 09, 2001 at 07:17:01AM -0500, John Ruttenberg wrote:
> I get:
>
> Jan 9 07:04:51 mojo cardmgr[511]: socket 1: Digital RoamAbout/DS
> Jan 9 07:04:52 mojo cardmgr[511]: executing: 'modprobe wavelan_cs'
> Jan 9 07:04:52 mojo cardmgr[511]: + /lib/modules/2.4.0-test11/pcmcia/wavelan_cs.o: unresolved symbol __bad_udelay
> Jan 9 07:04:52 mojo cardmgr[511]: + /lib/modules/2.4.0-test11/pcmcia/wavelan_cs.o: insmod /lib/modules/2.4.0-test11/pcmcia/wavelan_cs.o failed
> Jan 9 07:04:52 mojo cardmgr[511]: + /lib/modules/2.4.0-test11/pcmcia/wavelan_cs.o: insmod wavelan_cs failed
> Jan 9 07:04:52 mojo cardmgr[511]: modprobe exited with status 255
> Jan 9 07:04:52 mojo cardmgr[511]: executing: 'insmod /lib/modules/2.4.0/pcmcia/wavelan_cs.o'
> Jan 9 07:04:52 mojo cardmgr[511]: + /lib/modules/2.4.0/pcmcia/wavelan_cs.o: unresolved symbol __bad_udelay
> Jan 9 07:04:52 mojo cardmgr[511]: insmod exited with status 1

This is a bug with the definition of udelay(). Somebody tried
to be too clever with udelay(), and the end result is that it breaks
perfectly good and valid code.
Therefore, it should be reported as such on LKML, a bug in udelay().

I think that Alan has a ugly workaround for this driver (or
maybe it's only for wavelan.c) in the ac4 tree, so please check
there. For my part, I insist that the code is correct, that replacing
an inline function by a #define is going backwards and that udelay()
should be fixed one way or another (easy, just define __bad_udelay()
as returning a compilation warning or an error message).
Also, please remember that the version of wavelan_cs.c in the
kernel is outdated with respect to the version in the Pcmcia package.

That's it...

Jean
-
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/