Subject: AW: Re: kern/32191: integer divide fault trap caused by the ata driver
To: Manuel Bouyer <>
From: Matthias-Christian Ott <>
List: netbsd-bugs
Date: 11/30/2005 15:02:07
>Basically wdcprobe1 calls i8254_delay which calls gettick.
>The fault is at gettick+0x1c. From gdb this would be write_eflags(ef).
Well, it looks like everything is ok:

0xc054964c <gettick+28>:        movzx  eax,al

I really don't know why this can cause a trap.

Matthias-Christian Ott


(gdb) disassemble gettick+0x1c
Dump of assembler code for function gettick:
0xc0549630 <gettick>:   push   ebp
0xc0549631 <gettick+1>: mov    edx,ds:0xc07d7108
0xc0549637 <gettick+7>: test   edx,edx
0xc0549639 <gettick+9>: mov    ebp,esp
0xc054963b <gettick+11>:        jne    0xc054965c <gettick+44>
0xc054963d <gettick+13>:        pushf
0xc054963e <gettick+14>:        pop    edx
0xc054963f <gettick+15>:        cli
0xc0549640 <gettick+16>:        xor    eax,eax
0xc0549642 <gettick+18>:        out    0x43,al
0xc0549644 <gettick+20>:        in     al,0x40
0xc0549646 <gettick+22>:        mov    cl,al
0xc0549648 <gettick+24>:        in     al,0x40
0xc054964a <gettick+26>:        push   edx
0xc054964b <gettick+27>:        popf
0xc054964c <gettick+28>:        movzx  eax,al
0xc054964f <gettick+31>:        shl    eax,0x8
0xc0549652 <gettick+34>:        movzx  edx,cl
0xc0549655 <gettick+37>:        or     eax,edx
0xc0549657 <gettick+39>:        leave
0xc0549658 <gettick+40>:        ret
0xc0549659 <gettick+41>:        lea    esi,[esi]
0xc054965c <gettick+44>:        leave
0xc054965d <gettick+45>:        jmp    0xc0549ec8 <gettick_broken_latch>
0xc0549662 <gettick+50>:        mov    esi,esi

Weihnachten bei Tiscali! Geschenke gibt's schon jetzt.
DSL City Flat f=FCr sensationelle 3.90 Euro im Monat*. Alle DSL-Tarife 
3 Monate lang ohne Grundgeb=FChr! Gleich zugreifen!