Messages in this thread | | | Date | Sun, 4 May 1997 09:14:57 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: NULL pointer dereference with pre 2.1.37-4 |
| |
On Sun, 4 May 1997, Thorsten Kukuk wrote: > > 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.
Linus
| |