1.3.84 Oops / ksymoops fix

Ulrich Callmeier (uc@brian.lunetix.de)
Tue, 9 Apr 1996 00:06:47 +0200 (MET DST)


1) I suggest a trivial fix to ksymoops by changing 4096 to 8000 or
something like this in line 98. ksymoops core dumped for me because
the ksyms_0 array was too small before changing this. 1.3.84 has 4337
symbols with my setup.

2) I got the following Oops when doing shutdown.
Setup: 1.3.84 with Redhat 3.0.3 on i486
I had executed /sbin/shutdown -h now
The wellknown "error reading initrequest" messages scrolled over the
screen when suddenly the output stopped and the following Oops
appeared. After that console switching still worked and the screen
saver (blanking) still worked, but nothing else.

Unable to handle kernel NULL pointer dereference at virtual address c0000000
current->tss.cr3 = 00fae000, %cr3 = 00fae000
*pde = 00102067
*pte = 00000027
Oops: 0000
CPU: 0
EIP: 0010:[<001906c9>]
EFLAGS: 00010206
eax: 00000000 ebx: 00000005 ecx: 00f16000 edx: 00f16000
esi: 00f16000 edi: 00001000 ebp: 00f1651d esp: 00091d50
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process init (pid: 1, process nr: 1, stackpage=00091000)
Stack: 00000005 00f16000 00001000 00f1651d 009081b4 0000006a 0022a080 00026c38
0022a290 00197ce0 0022a3f4 0026d039 00000000 0018bf6e 00f16000 00000000
00091d9b 00000001 209087a8 0018c458 00f16000 00000020 00f16020 00f16000
Call Trace: [<00197ce0>] [<0018bf6e>] [<0018c458>] [<0018c4ca>] [<0018d0b6>] [<0010f900>] [<0010c8c9>]
[<0013d8d0>] [<0018becc>] [<00110ea8>] [<0011771b>] [<0010a4bb>] [<0018d7c0>] [<0018a9ec>] [<0015d8f6>]
[<0018b14e>] [<00124811>] [<00122b0e>] [<00122bd2>] [<0010a539>]
Code: 8b 00 89 44 24 2c 50 e8 eb dc ff ff 83 c4 04 85 c0 75 34 83
Aiee, killing interrupt handler

Output from ksymoops (after fix):

Using `System.map' to map addresses to symbols.

>>EIP: 1906c9 <con_write+19/15a0>
Trace: 197ce0 <add_timer_randomness+190/1a0>
Trace: 18bf6e <tty_default_put_char+1e/30>
Trace: 18c458 <opost+1e8/200>
Trace: 18c4ca <echo_char+5a/60>
Trace: 18d0b6 <n_tty_receive_buf+7f6/b70>
Trace: 10f900 <timer_interrupt>
Trace: 10c8c9 <do_IRQ+39/50>
Trace: 13d8d0 <unix_destroy_timer>
Trace: 18becc <flush_to_ldisc+8c/a0>
Trace: 110ea8 <tqueue_bh+28/40>
Trace: 11771b <do_bottom_half+3b/70>
Trace: 10a4bb <handle_bottom_half+b/20>
Trace: 18d7c0 <n_tty_open+80/100>
Trace: 18a9ec <init_dev+39c/5a0>
Trace: 15d8f6 <ext2_lookup+b6/160>
Trace: 18b14e <tty_open+7e/1d0>
Trace: 124811 <chrdev_open+31/40>
Trace: 122b0e <do_open+ee/180>
Trace: 122bd2 <sys_open+32/60>
Trace: 10a539 <system_call+59/a0>

Code: 1906c9 <con_write+19/15a0> movl (%eax),%eax
Code: 1906cb <con_write+1b/15a0> movl %eax,0x2c(%esp,1)
Code: 1906cf <con_write+1f/15a0> pushl %eax
Code: 1906d0 <con_write+20/15a0> call ffffdcf7 <_EIP+ffffdcf7>
Code: 1906d5 <con_write+25/15a0> addl $0x4,%esp
Code: 1906d8 <con_write+28/15a0> testl %eax,%eax
Code: 1906da <con_write+2a/15a0> jne 190710 <con_write+60/15a0>
Code: 1906dc <con_write+2c/15a0> addl $0xffffff90,(%eax)
Code: 1906df <con_write+2f/15a0> nop

-- Ulrich