NetBSD Problem Report #32191

From www@netbsd.org  Tue Nov 29 15:01:24 2005
Return-Path: <www@netbsd.org>
Received: by narn.netbsd.org (Postfix, from userid 31301)
	id 5322363B8CC; Tue, 29 Nov 2005 15:01:24 +0000 (UTC)
Message-Id: <20051129150124.5322363B8CC@narn.netbsd.org>
Date: Tue, 29 Nov 2005 15:01:24 +0000 (UTC)
From: matthias.christian@tiscali.de
Reply-To: matthias.christian@tiscali.de
To: gnats-bugs@netbsd.org
Subject: integer divide fault trap caused by the ata driver
X-Send-Pr-Version: www-1.0

>Number:         32191
>Category:       kern
>Synopsis:       integer divide fault trap caused by the ata driver
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Nov 29 15:02:00 +0000 2005
>Last-Modified:  Wed Nov 30 14:24:01 +0000 2005
>Originator:     Matthias-Christian Ott
>Release:        netbsd-3
>Organization:
>Environment:
>Description:
I get an "integer divide fault trap" caused by the ata driver when booting my computer [0] [1]. See the screenshots for more details.

[0] http://metawire.org/~matthias-christian-ott/pub/netbsd/netbsd-3/integer-divide-fault-trap-0.jpg
[1] http://metawire.org/~matthias-christian-ott/pub/netbsd/netbsd-3/integer-divide-fault-trap-1.jpg
>How-To-Repeat:

>Fix:

>Audit-Trail:
From: Manuel Bouyer <bouyer@antioche.eu.org>
To: gnats-bugs@NetBSD.org
Cc: kern-bug-people@NetBSD.org, gnats-admin@NetBSD.org,
	netbsd-bugs@NetBSD.org
Subject: Re: kern/32191: integer divide fault trap caused by the ata driver
Date: Tue, 29 Nov 2005 21:18:41 +0100

 On Tue, Nov 29, 2005 at 03:02:01PM +0000, matthias.christian@tiscali.de wrote:
 > >Number:         32191
 > >Category:       kern
 > >Synopsis:       integer divide fault trap caused by the ata driver
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       high
 > >Responsible:    kern-bug-people
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Tue Nov 29 15:02:00 +0000 2005
 > >Originator:     Matthias-Christian Ott
 > >Release:        netbsd-3
 > >Organization:
 > >Environment:
 > >Description:
 > I get an "integer divide fault trap" caused by the ata driver when booting my computer [0] [1]. See the screenshots for more details.
 > 
 > [0] http://metawire.org/~matthias-christian-ott/pub/netbsd/netbsd-3/integer-divide-fault-trap-0.jpg
 > [1] http://metawire.org/~matthias-christian-ott/pub/netbsd/netbsd-3/integer-divide-fault-trap-1.jpg

 Basically wdcprobe1 calls i8254_delay which calls gettick.
 The fault is at gettick+0x1c. From gdb this would be write_eflags(ef).
 I can't see how this can cause a integer divide fault trap.

 Even in i8254_delay I can't see how we could get a divide by 0 here.

 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --

From: "Matthias-Christian Ott" <matthias.christian@tiscali.de>
To: "Manuel Bouyer" <bouyer@antioche.eu.org>, gnats-bugs@NetBSD.org
Cc: kern-bug-people@NetBSD.org, gnats-admin@NetBSD.org,
	netbsd-bugs@NetBSD.org
Subject: AW: Re: kern/32191: integer divide fault trap caused by the ata driver
Date: Wed, 30 Nov 2005 15:02:07 +0100

 >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!
 http://www.tiscali.de/webmail/dsl.php

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.