[tulip] unresolved symbols in tulip.o

Donald Becker becker@scyld.com
Tue Feb 19 11:58:01 2002


On Tue, 19 Feb 2002, Jaap Versteegh @ Cas wrote:

> I've seen several people complain about this, but found no answers in the
> mailing list archives.
>
> I'm running SuSE 7.1 (2.2.18). and get the following unresolved symbols when
> running "insmod tulip.o"
> __global_cli
> __global_save_flags
> __global_restore_flags

This looks like a SMP / uniprocessor kernel header file mismatch.

What driver are you trying to compile?
What kernel are you trying to run?  What did you compile for?

> I have the impression that the problem is SuSE related since a lot of the
> people complaining about it are running SuSE....

Yes, this is very likely a SuSE-specific incompatibility with standard
header files.  But the real problem is that I missed updating this line
in tulip.c.

> Replacing the lines (in tulip.c):
> 
> save_flags(flags); cli();
> by
> spin_lock_irqsave(&tp->mii_lock, flags);

I initially wrote:
   Do you mean the other way around?  Or are you trying to compile an
   old driver version?
But then I looked at the drivers, and found that the tulip driver was
unique in still calling cli() instead of the new macro.  Doh!

> solved the unresolved symbol problem and the driver is running now ! I have
> no idea if it is an allowable replacement though. I got the idea from these
> lines in kern_compat.h

This creates an artificial locking conflict with MII management
operations, but that won't have a measurable impact.


Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993