GPF in 2.0.9

Ulrich Windl (
Wed, 21 Aug 1996 11:48:21 +0200

Hello everybody,

I've got a system halt with 2.0.9 after the following message.
I'm not 100% sure whether it's not my processor that's running wild,
but usually I can work several hours without problems, and even
kernel builds work just fine. So maybe the's a little, but rare problem.
If the problem is already known and fixed (I'm running 2.0.12 since that),
please excuse that message, but I'm currently on holiday and not following
the kernel list.

---------- snip for the syslog ----------
general protection: 0000
CPU: 0
EIP: 0010:[<0012bb97>]
EFLAGS: 00013082
eax: 00819000 ebx: 00003207 ecx: 0081909c edx: f000ef6f
esi: 01a4ae9c edi: 00000002 ebp: 0000000f esp: 01a4ae70
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process X (pid: 73, process nr: 18, stackpage=01a4a000)
Stack: 0000000f 01a4af14 0012be2a 01a4ae9c 00000080 00000000 bffff8fc 08230ce4
00000000 00000004 00819000 0000000d 00819000 0012c083 00000080 01a4af54
01a4af14 01a4aed4 01a4af74 01a4af34 01a4aef4 08230ce4 00000080 bffff8b4
Call Trace: [<0012be2a>] [<0012c083>] [<001399d9>] [<0010f433>] [<0010a4d2>]
Code: 39 4a 04 75 f8 8b 41 04 89 42 04 c7 41 04 00 00 00 00 53 9d
---------- snip for the ksymoops ----------
Using `/usr/src/linux/' to map addresses to symbols.

>>EIP: 12bb97 <free_wait+47/64>
Trace: 12be2a <do_select+1f2/238>
Trace: 12c083 <sys_select+183/254>
Trace: 1399d9 <unix_recvmsg+205/438>
Trace: 10f433 <old_select+3f/50>
Trace: 10a4d2 <system_call+52/80>
---------- snip for the disassembly ----------
Script started on Mon Aug 19 13:37:20 1996
elf:/var/log # gdb /usr/src/linux/vmlinux
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.15.1 (i486-linux), Copyright 1995 Free Software Foundation, Inc...
(no debugging symbols found)...
(gdb) disass free_wait
Dump of assembler code for function free_wait:
0x12bb50 <free_wait>: pushl %esi
0x12bb51 <free_wait+1>: pushl %ebx
0x12bb52 <free_wait+2>: movl 0xc(%esp,1),%esi
0x12bb56 <free_wait+6>: movl (%esi),%ebx
0x12bb58 <free_wait+8>: leal (%ebx,%ebx,2),%edx
0x12bb5b <free_wait+11>: movl 0x4(%esi),%eax
0x12bb5e <free_wait+14>: leal (%eax,%edx,4),%ecx
0x12bb61 <free_wait+17>: testl %ebx,%ebx
0x12bb63 <free_wait+19>: jle 0x12bbb1 <free_wait+97>
0x12bb65 <free_wait+21>: leal 0x0(%esi),%esi
0x12bb68 <free_wait+24>: decl %ebx
0x12bb69 <free_wait+25>: movl %ebx,(%esi)
0x12bb6b <free_wait+27>: addl $0xfffffff4,%ecx
0x12bb6e <free_wait+30>: movl 0x8(%ecx),%edx
0x12bb71 <free_wait+33>: pushf
0x12bb72 <free_wait+34>: popl %ebx
0x12bb73 <free_wait+35>: cli
0x12bb74 <free_wait+36>: cmpl %ecx,(%edx)
0x12bb76 <free_wait+38>: jne 0x12bb8c <free_wait+60>
0x12bb78 <free_wait+40>: movl 0x4(%ecx),%eax
0x12bb7b <free_wait+43>: movl %eax,(%edx)
0x12bb7d <free_wait+45>: cmpl %ecx,%eax
0x12bb7f <free_wait+47>: jne 0x12bb8c <free_wait+60>
0x12bb81 <free_wait+49>: movl $0x0,(%edx)
0x12bb87 <free_wait+55>: jmp 0x12bba2 <free_wait+82>
0x12bb89 <free_wait+57>: leal 0x0(%esi),%esi
0x12bb8c <free_wait+60>: movl %ecx,%edx
0x12bb8e <free_wait+62>: cmpl %ecx,0x4(%ecx)
0x12bb91 <free_wait+65>: je 0x12bb9c <free_wait+76>
0x12bb93 <free_wait+67>: nop
0x12bb94 <free_wait+68>: movl 0x4(%edx),%edx
0x12bb97 <free_wait+71>: cmpl %ecx,0x4(%edx)
0x12bb9a <free_wait+74>: jne 0x12bb94 <free_wait+68>
0x12bb9c <free_wait+76>: movl 0x4(%ecx),%eax
0x12bb9f <free_wait+79>: movl %eax,0x4(%edx)
0x12bba2 <free_wait+82>: movl $0x0,0x4(%ecx)
0x12bba9 <free_wait+89>: pushl %ebx
0x12bbaa <free_wait+90>: popf
0x12bbab <free_wait+91>: movl (%esi),%ebx
0x12bbad <free_wait+93>: testl %ebx,%ebx
0x12bbaf <free_wait+95>: jg 0x12bb68 <free_wait+24>
0x12bbb1 <free_wait+97>: popl %ebx
0x12bbb2 <free_wait+98>: popl %esi
0x12bbb3 <free_wait+99>: ret
End of assembler dump.
(gdb) q
elf:/var/log # exit
Script done on Mon Aug 19 13:38:36 1996
---------- final snip ----------

Ulrich Windl
(Still on vacation)