[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