Subject: kern/37251: Seagate disks larger than 900GB don't get caught by the force_lba48 quirk in /usr/src/sys/dev/ata/wd.c
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Brian Buhrow <buhrow@lothlorien.nfbcal.org>
List: netbsd-bugs
Date: 10/31/2007 07:45:00
>Number: 37251
>Category: kern
>Synopsis: Seagate disks larger than 900GB don't get caught by the quirk table
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Oct 31 07:45:00 +0000 2007
>Originator: Brian Buhrow
>Release: NetBSD 3.x
>Organization:
>Environment:
>Description:
Seagate disks larger than 900GB aren't caught by the FORCE_LBA48 quirk
in /usr/src/sys/dev/ata/wd.c which forces LBA48 addressing on Seagate's
buggy firmware. This patch fixes that problem for NetBSD-3.x and 4.X
builds. It looks like a more general fix has been implemented for NetBSD-current.
>How-To-Repeat:
The Seagate ST31000340NS 1TB disk drive demonstrates the problem nicely.
>Fix:
Here is a patch to /usr/src/sys/dev/ata/wd.c which fixes the problem nicely
as well.
-Brian
Index: wd.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ata/wd.c,v
retrieving revision 1.298.2.13
diff -u -r1.298.2.13 wd.c
--- wd.c 20 Nov 2006 15:41:15 -0000 1.298.2.13
+++ wd.c 31 Oct 2007 06:10:24 -0000
@@ -248,6 +248,8 @@
/* Attempt to catch all seagate drives larger than 200GB */
{ "ST3[2-9][0-9][0-9][0-9][0-9][0-9][A-Z]*",
WD_QUIRK_FORCE_LBA48 },
+ { "ST3[1-9][0-9][0-9][0-9][0-9][0-9][0-9][A-Z]*",
+ WD_QUIRK_FORCE_LBA48 },
{ NULL,
0 }
};
>Unformatted: