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: