2.0.27, NULL pointer dereference

joost witteveen (joost@rulcmc.leidenuniv.nl)
Fri, 13 Dec 1996 23:20:33 +0100 (MET)

Kernel: 2.0.27

Found this in /proc/kmsg (and on my console):

<1>Unable to handle kernel NULL pointer dereference at virtual address c000010c
<1>current->tss.cr3 = 00101000, %cr3 = 00101000
<1>*pde = 00102067
<1>*pte = 00000027
<4>Oops: 0002
<4>CPU: 0
<4>EIP: 0010:[<00115028>]
<4>EFLAGS: 00010216
<4>eax: 00000000 ebx: 002bb414 ecx: 0164112c edx: 0000f414
<4>esi: 00000100 edi: 00000009 ebp: 0000d018 esp: 00041f98
<4>ds: 0018 es: 0018 fs: 0000 gs: 0000 ss: 0018
<4>Process bash (pid: 54, process nr: 13, stackpage=00041000)
<4>Stack: 0009e3d8 0011529c 0000f414 ffffffff fffffffc 00000000 001152de 00000000
<4> 0010a602 00000000 00000000 000019b0 ffffffff fffffffc 00000000 ffffffda
<4> 0000002b 0000002b 0000002b 0000002b 00000001 400cbb36 00000023 00000296
<4>Call Trace: [<0011529c>] [<001152de>] [<0010a602>]
<4>Code: 89 98 0c 01 00 00 8b 83 04 01 00 00 89 98 08 01 00 00 8b 03

ksymoops System.map </tmp/hoi/null_pointer
Trace: 11529c <do_exit+1b8/1ec>
Trace: 1152de <sys_exit+e/10>
Trace: 10a602 <system_call+52/80>

Some more info:

For some reason wednesday (running 2.0.26 back then) two hd's of mine
got corrupted, and I was still having trouble. For example, when I did

#cd /usr/lost+found
#rm -rf *

The rm process would eat up all CPU time (for at least 7 min), and ignore
kill -KILL signals. "Solved" this by reboting.

During this, my /usr partition got corrupted again, and I ended up in
single user mode. Then, I tried:
/usr/lost+found# for f in *0; do (rm -rf "$f"&); done
and that's when the oops appeard (actually, it was the second time I did
this. The other 9 times, with *1, *2,.., ran fine)

Afterwards, ps -ax showed some 50 zombie ps processes. (but my /usr
partition appears to be fine now).

The system is a Pentium 75, stepping 5, booted with "mem=nopentium":
#cat /proc/cmdline
BOOT_IMAGE=2.0.27-nopent root=301 mem=nopentium

The system has been very stable for over a year, and I've (until
2 days ago) even had it running at 90 MHz. (but was running at
75 MHz when the null pointer appeared).

Rest of my /proc/kmsg:

<4>Console: 16 point font, 400 scans
<4>Console: colour VGA+ 80x25, 1 virtual console (max 63)
<4>pcibios_init : BIOS32 Service Directory structure at 0x000fd650
<4>pcibios_init : BIOS32 Service Directory entry at 0xfd660
<4>pcibios_init : PCI BIOS revision 2.10 entry at 0xfd681
<4>Probing PCI hardware.
<4>Calibrating delay loop.. ok - 29.70 BogoMIPS
<4>Memory: 23032k/24576k available (548k kernel code, 384k reserved, 612k data)
<4>This processor honours the WP bit even when in supervisor mode. Good.
<6>Swansea University Computer Society NET3.035 for Linux 2.0
<6>NET3: Unix domain sockets 0.13 for Linux NET3.035.
<4>Swansea University Computer Society TCP/IP for NET3.034
<4>IP Protocols: ICMP, UDP, TCP
<4>Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
<4>Checking 'hlt' instruction... Ok.
<4>Linux version 2.0.27 (joost@rulcmc) (gcc version #1 Thu Dec 12 16:30:50 MET 1996
<6>Serial driver version 4.13 with no serial options enabled
<6>tty00 at 0x03f8 (irq = 4) is a 16550A
<6>tty01 at 0x02f8 (irq = 3) is a 16550A
<6>tty03 at 0x02e8 (irq = 3) is a 16550A
<4>ide: i82371 PIIX (Triton) on PCI bus 0 function 57
<4> ide0: BM-DMA at 0xffa0-0xffa7
<4> ide1: BM-DMA at 0xffa8-0xffaf
<4>hda: Maxtor 7850 AV, 814MB w/64kB Cache, LBA, CHS=827/32/63
<4>hdb: ST31220A, 1033MB w/256kB Cache, LBA, CHS=2099/16/63
<4>hdd: QUANTUM BIGFOOT2100A, 2015MB w/87kB Cache, LBA, CHS=4095/16/63, DMA
<4>ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
<4>ide1 at 0x170-0x177,0x376 on irq 15
<6>Floppy drive(s): fd0 is 1.44M
<4>Started kswapd v
<6>FDC 0 is a National Semiconductor PC87306
<4>eth0: 3c509 at 0x300 tag 1, BNC port, address 00 a0 24 b8 5d 87, IRQ 10.
<4>3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
<4>Partition check:
<4> hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
<4> hdb: hdb1
<4> hdd: hdd1 hdd2 hdd3
<4>VFS: Mounted root (ext2 filesystem) readonly.
<4>Adding Swap: 61452k swap-space

After all this, I just reinstalled nearly the complete debian-1.2
system, and everything is still OK with /usr (the "trouble" partition)

joost witteveen
Use Debian/GNU Linux!