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: