Subject: Re: Soft error on disk write corrupted drive (LBA28-1 - problem?)
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Stuart Brooks <stuartb@cat.co.za>
List: port-i386
Date: 09/03/2007 14:18:09
Manuel Bouyer wrote:
> On Fri, Aug 31, 2007 at 08:21:03AM -0700, Brian Buhrow wrote:
>   
>> 	I thought that problem was unique to Seagate disks.  Or maybe not,
>> but in either case, patches were made to the ATA subsystem to work around
>> potential failures of the drives to deal with the problem.  NetBSD-3.1
>> contains these fixes, so if that's your problem, upgrading your kernel to
>> 3.1 should do the trick.
>>     
>
> No, because the drive needs to be added to the quirk list.
> But in this case it seems to have sighlty different behavior.
>
> Also the fact that it seems to write at the wrong place when using PIO
> mode doesn't look good. Maybe we need to disable PIO transfers competely
> for SATA (but in this case, we'll have issues with PATA/SATA bridges ...)
>
>   
I modified src/sys/dev/ata/wd.c and added the 'WDC WD????AAJS' models to 
the quirks to force LBA48 and it did the trick, fixing the problem on 
the WD2500AAJS and the WD5000AAJS drives. As mentioned before, the next 
iteration of the drive - the AAKS or KS models - seemed to be fine so I 
presume they have a different firmware.

I think that the reason the 1024k dd of rwd0d succeeded is because no 
block transfer would have spanned the 28 bit boundary. The 1000k 
transfer would have. So that would explain the discrepancy.

Is this something which should be submitted as a change request?