Re: NULL pointer dereference with pre 2.1.37-4

Thorsten Kukuk (kukuk@weber.uni-paderborn.de)
Sun, 4 May 1997 21:39:33 +0200 (MEST)


> > With pre 2.1.37-3 and 2.1.37-4, I get the following Oops when
> > starting init:
> >
> > Unable to handle kernel NULL pointer dereference at virtual address 00000000
> > current->tss.cr3 = 00101000,%cr3=00101000
> > *pde=00000000
> > Oops: 0002
> > CPU: 0
> > EIP: 0010:[<c01d8ef0>]
> > EFLAGS: 00010247
> > eax: 00000000 ebx: 00004000 ecx: 00000000 edx: 00000001
> > esi: c0107f60 edi: c01da4f2 ebp: c0005fdc esp: c0005fac
> > ds: 0018 es: 0018 ss: 0018
> > Process swapper (pid:0, process nr:1, stackpage=c0097000)
> > Stack: 00001100 c0107f60 c01da4f2 00000001 c0107f60 00000001 00000000 00000005
> > 00000018 00000018 ffffffff c0108440 00000e00 c0108519 00001100 c02137b0
> > 00000000 c021380f 00000000 c02137a4 00000001
> > Call Trace:
> > Code: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> >
> > ksymoops:
> > Using `/src/Linux/linux-2.1/System.map' to map addresses to symbols.
> >
> > >>EIP: c01d8ef0 <dst_access_fault+1a9/2c16>
> >
> > Code: c01d8ef0 <dst_access_fault+1a9/2c16>
>
> This _looks_ like the linker hasn't done the right thing for the
> ".text.lock" segment, which should contain the out-of-line spinlock code,
> but seems to contain just zeroes for you. So you get a fault the first
> time there is any contention on any lock.
>
> How recent are your binutils? The new kernel compilation scheme definitely
> requires more of the linker - we're doing some extremely clever stuff to
> get some nice optimizations.

I have tried binutils 2.7.0.16 and binutils 2.8.0.3. with both the same
result. The 2.1.35 kernel compiles fine and works.

Thorsten

-- 
Thorsten Kukuk  kukuk@vt.uni-paderborn.de
                http://www-vt.uni-paderborn.de/~kukuk
Linux is like a Vorlon.  It is incredibly powerful, gives terse,
cryptic answers and has a lot of things going on in the background.