Subject: kern/8859: ATA error handling in not quite right
To: None <gnats-bugs@gnats.netbsd.org>
From: Charles M. Hannum <root@ihack.net>
List: netbsd-bugs
Date: 11/22/1999 20:12:39
>Number:         8859
>Category:       kern
>Synopsis:       ATA error handling in not quite right
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Nov 22 20:12:00 1999
>Last-Modified:
>Originator:     Charles M. Hannum
>Organization:
        Internetwork Hacker
>Release:        -current as of 19991117
>Environment:
        n/a

>Description:
        According to communications on the X3T13 mailing list, to
        properly detect errors, the error bit must be checked after
        transfer each individual 512-byte sector.  The ATA code does
        not currently implement this behaviour.  (This could explain
        why it sometimes times out rather than returning an error
        immediately.)

>How-To-Repeat:
        Read a bad sector.  Maybe read through EOF also reproduces it?

>Fix:
        Rework ata_wdc.c to read individual 512-byte sectors and
        recheck the status bits after each one.

>Audit-Trail:
>Unformatted: