1.3.93 oops: cat /proc/ioports

Gonzalo Tornaria (gtornari@varela.reu.edu.uy)
Sun, 28 Apr 96 8:14:18 GMT

I had an oops in 1.3.93 when I did cat /proc/ioports. This doesn't
happens every time, but after it happens once, it happens forever..
(at least it seemed to... I rebooted, and cat /proc/ioports worked again).
It happened to me only once... (I've tried with 1.3.96, no oops yet).

This is the oops:

Unable to handle kernel paging request at virtual address c08172bc
current->tss.cr3 = 00260000, @r3 = 00260000
*pde = 0009e067
*pte = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[vsprintf+647/1052]
EFLAGS: 00010297
eax: 008172bc ebx: ffffffff ecx: 008172bc edx: fffffffe
esi: ffffffff edi: 001c00bd ebp: 00000000 esp: 00066ee0
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process cat (pid: 1758, process nr: 5, stackpage=00066000)
Stack: 001880a0 000000b1 001c0000 001c0000 003aeb40 00000007 00153a20 ffffffff
0000001b 00000001 0016de78 001c00b1 0016fd9d 00066f30 00116280 001c00b1
0016fd8e 000002f8 000002ff 008172bc 00000000 00066f90 00001000 00155dd6
Call Trace: [proc_root_lookup+56/256] [sprintf+20/24] [get_ioport_list+56/100] [_end+6798851/6802247] [get_root_array+306/344] [array_read+202/564] [sys_read+170/188]
Code: 80 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 89 c6 f7 c5 10 00

Just in case, this disassembles to:

cmpb $0x00,(%eax)
je <oops+12>
incl %eax
decl %edx
cmpl $0xffffffff,%edx
jne <oops>
subl %ecx,%eax
movl %eax,%esi
testl $0x10,%ebp
addb %al,(%eax)

(btw, I got this with Linus trick of compiling "Code:" in a char [], and look
at it with gdb, because objdump -d segfaults so I can't use ksymoops... This
is with binutils, libc 5.2.18, gcc 2.7.2, linux 1.3.96, any ideas?)