Subject: Re: two disks, two controlers, same bad block
To: Alan Barrett <apb@cequrux.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: tech-kern
Date: 03/28/2006 14:17:27
On Tue, Mar 28, 2006 at 09:41:59AM +0200, Alan Barrett wrote:
> if (sector == whatever the magic number is) {
>    if (disk is larger than magic size
>        && controller can handle LBA48)

This is the key point: we don't have a list of LBA48-capable controllers.
All newer controllers can probably do it. All old & "stupid" controllers
can probably do it. There can be problems for old & "smart" controllers,
which snoops/buffers the command registers but don't know about the
double register write of LBA48.

One would have to test for this, and I don't have a sample of each 
IDE controller ever manufactured to check for this. Matching against
the disk string is easier, with 3 entries we can catch all the
current and futur models of this serie of drives (until they reach 1TB, but
it's likely that it won't be the same serie then; and with some luck the new
serie won't have this bug ...)

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