Bug#401035: ST310211A and HPA ( was Re: Bug#401035: linux-image-2.6-686 - another misbehaving Seagate )

2008-02-16 Thread Bartlomiej Zolnierkiewicz
On Wednesday 06 February 2008, Mikko Rapeli wrote:
 (cc'ing linux-ide)
 
 On Mon, Feb 04, 2008 at 02:32:59AM +0100, Bart Champagne wrote:
  Just found another type of Seagate drives that shows this behaviour : 
  ST310211A
  Can this one be blacklisted as well ?
 
 Yes, do you have a patch? And a dmesg dump of the drive in use with and 
 without a patch?
 
 If you do, please send them to upstream [EMAIL PROTECTED] and hope
 that the fix gets applied to Debian kernels too. Also, please test the
 sata/pata driver with your drive and add a blacklist there too.
 
 If you don't have a patch, here's one for 2.6.24 to go.
 
 From 4a8b40c53d2e539bad3f93996f599d69a16af94b Mon Sep 17 00:00:00 2001
 From: Mikko Rapeli [EMAIL PROTECTED]
 Date: Wed, 6 Feb 2008 09:41:14 +0200
 Subject: [PATCH] ST310211A has buggy HPA too.
 
 Signed-off-by: Mikko Rapeli [EMAIL PROTECTED]

applied (this was confirmed by Bart Champagne to fix the issue)

Thanks.

 ---
  drivers/ata/libata-core.c |1 +
  drivers/ide/ide-disk.c|1 +
  2 files changed, 2 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
 index 6380726..d08f869 100644
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
 @@ -4169,6 +4169,7 @@ static const struct ata_blacklist_entry 
 ata_device_blacklist [] = {
   /* Devices which report 1 sector over size HPA */
   { ST340823A,  NULL,   ATA_HORKAGE_HPA_SIZE, },
   { ST320413A,  NULL,   ATA_HORKAGE_HPA_SIZE, },
 + { ST310211A,  NULL,   ATA_HORKAGE_HPA_SIZE, },
  
   /* Devices which get the IVB wrong */
   { QUANTUM FIREBALLlct10 05, A03.0900, ATA_HORKAGE_IVB, },
 diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
 index b178190..a0f9940 100644
 --- a/drivers/ide/ide-disk.c
 +++ b/drivers/ide/ide-disk.c
 @@ -462,6 +462,7 @@ static inline int idedisk_supports_lba48(const struct 
 hd_driveid *id)
  static const struct drive_list_entry hpa_list[] = {
   { ST340823A,  NULL },
   { ST320413A,  NULL },
 + { ST310211A,  NULL },
   { NULL, NULL }
  };



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#401035: ST310211A and HPA ( was Re: Bug#401035: linux-image-2.6-686 - another misbehaving Seagate )

2008-02-08 Thread Mikko Rapeli
On Thu, Feb 07, 2008 at 10:13:42PM +0100, Bart Champagne wrote:
 Backporting the fix for 2.6.23 to the Debian 2.6.18 kernel hasn't 
 succeeded yet, my C has gone very rusty it seems.
 In attachment a dmesg log for this drive. When/if I get a working 
 patch I'll let you know.

I think this should work for 2.6.18 (2.6.18.dfsg.1-17etch1) in Debian 
(I backported the patches once before). I don't have my buggy hardware 
to test with me now, but this should work. Fetch the latest
linux-source-2.6.18 package, extract the tar ball from
/usr/src/linux-source*, apply the patch and test :)

Backported HPA fix git commits b0244a00451c1ad64bf0a51f50679f7146786780 
and 7062cdc5edb3ba4b2eb906684cd19e103de1f920 to Debian's 2.6.18. 
Added ST310211A as reported by Bart Champagne.

diff -ru linux-source-2.6.18/drivers/ide/ide-disk.c 
linux-source-2.6.18-idehpa/drivers/ide/ide-disk.c
--- linux-source-2.6.18/drivers/ide/ide-disk.c  2006-09-20 06:42:06.0 
+0300
+++ linux-source-2.6.18-idehpa/drivers/ide/ide-disk.c   2008-02-08 
12:11:30.0 +0200
@@ -482,6 +482,17 @@
id-lba_capacity_2;
 }
 
+/*
+ * Some disks report total number of sectors instead of
+ * maximum sector address.  We list them here.
+ */
+static const struct drive_list_entry hpa_list[] = {
+   { ST340823A,  ALL },
+   { ST320413A,  ALL },
+   { ST310211A,  ALL },
+   { NULL, NULL }
+};
+
 static void idedisk_check_hpa(ide_drive_t *drive)
 {
unsigned long long capacity, set_max;
@@ -493,6 +504,15 @@
else
set_max = idedisk_read_native_max_address(drive);
 
+   if (ide_in_drive_list(drive-id, hpa_list)) {
+   /*
+* Since we are inclusive wrt to firmware revisions do this
+* extra check and apply the workaround only when needed.
+*/
+   if (set_max == capacity + 1)
+   set_max--;
+   }
+
if (set_max = capacity)
return;
 
diff -ru linux-source-2.6.18/drivers/ide/ide-iops.c 
linux-source-2.6.18-idehpa/drivers/ide/ide-iops.c
--- linux-source-2.6.18/drivers/ide/ide-iops.c  2006-09-20 06:42:06.0 
+0300
+++ linux-source-2.6.18-idehpa/drivers/ide/ide-iops.c   2008-02-08 
10:54:15.0 +0200
@@ -589,6 +589,8 @@
 
 EXPORT_SYMBOL(ide_wait_stat);
 
+EXPORT_SYMBOL_GPL(ide_in_drive_list);
+
 /*
  *  All hosts that use the 80c ribbon must use!
  *  The name is derived from upper byte of word 93 and the 80c ribbon.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#401035: ST310211A and HPA ( was Re: Bug#401035: linux-image-2.6-686 - another misbehaving Seagate )

2008-02-07 Thread Bart Champagne

At 09:11 6/02/08, Mikko Rapeli wrote:

(cc'ing linux-ide)

On Mon, Feb 04, 2008 at 02:32:59AM +0100, Bart Champagne wrote:
 Just found another type of Seagate drives that shows this behaviour :
 ST310211A
 Can this one be blacklisted as well ?

Yes, do you have a patch? And a dmesg dump of the drive in use with and
without a patch?

If you do, please send them to upstream [EMAIL PROTECTED] and hope
that the fix gets applied to Debian kernels too. Also, please test the
sata/pata driver with your drive and add a blacklist there too.


Hi,

Backporting the fix for 2.6.23 to the Debian 2.6.18 kernel hasn't 
succeeded yet, my C has gone very rusty it seems.
In attachment a dmesg log for this drive. When/if I get a working 
patch I'll let you know.


Regards,

Bart
Linux version 2.6.18-6-486 (Debian 2.6.18.dfsg.1-17etch1) ([EMAIL PROTECTED]) 
(gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 Wed Jan 23 
02:46:42 UTC 2008
BIOS-provided physical RAM map:
 BIOS-e820:  - 0009fc00 (usable)
 BIOS-e820: 0009fc00 - 000a (reserved)
 BIOS-e820: 000ea400 - 0010 (reserved)
 BIOS-e820: 0010 - 0400 (usable)
 BIOS-e820: fffea400 - 0001 (reserved)
64MB LOWMEM available.
DMI 2.1 present.
ACPI: Unable to locate RSDP
Allocating PCI resources starting at 1000 (gap: 0400:fbfea400)
Detected 233.045 MHz processor.
Built 1 zonelists.  Total pages: 16384
Kernel command line: BOOT_IMAGE=linux ro root=301 console=ttyS0,115200
No local APIC present or hardware disabled
Initializing CPU#0
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour VGA+ 80x25
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 57664k/65536k available (1499k kernel code, 7424k reserved, 599k data, 
256k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 466.61 BogoMIPS (lpj=933239)
Security Framework v1.0.0 initialized
SELinux:  Disabled at boot.
Capability LSM initialized
Mount-cache hash table entries: 512
CPU: L1 I Cache: 32K (32 bytes/line), D cache 32K (32 bytes/line)
Compat vDSO mapped to e000.
CPU: AMD-K6tm w/ multimedia extensions stepping 02
Checking 'hlt' instruction... OK.
checking if image is initramfs... it is
Freeing initrd memory: 4239k freed
NET: Registered protocol family 16
EISA bus registered
PCI: PCI BIOS revision 2.10 entry at 0xfda0a, last bus=0
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI: disabled
PnPBIOS: Scanning system for PnP BIOS support...
PnPBIOS: Found PnP BIOS installation structure at 0xc00f7960
PnPBIOS: PnP BIOS version 1.0, entry 0xf:0xab83, dseg 0xf
PnPBIOS: 14 nodes reported by PnP BIOS; 14 recorded by driver
PCI: Probing PCI hardware
PCI: Using IRQ router PIIX/ICH [8086/7000] at :00:07.0
pnp: 00:0a: ioport range 0x4d0-0x4d1 has been reserved
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
audit: initializing netlink socket (disabled)
audit(1202352982.376:1): initialized
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
Limiting direct PCI/PCI transfers.
Activating ISA DMA hang workarounds.
isapnp: Scanning for PnP cards...
isapnp: No Plug  Play device found
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
PNP: PS/2 Controller [PNP0303] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
EISA: Probing bus 0 at eisa.0
EISA: Detected 0 cards.
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
NET: Registered protocol family 8
NET: Registered protocol family 20
Using IPI Shortcut mode
Time: tsc clocksource has been installed.
Freeing unused kernel memory: 256k freed
Loading, please wait...
input: AT Translated Set 2 keyboard as /class/input/input0
Begin: Loading essential drivers... ...
Done.
Begin: Running /scripts/init-premount ...
FATAL: Error inserting fan 
(/lib/modules/2.6.18-6-486/kernel/drivers/acpi/fan.ko): No such device
FATAL: Error inserting thermal 

Bug#401035: ST310211A and HPA ( was Re: Bug#401035: linux-image-2.6-686 - another misbehaving Seagate )

2008-02-06 Thread Mikko Rapeli
(cc'ing linux-ide)

On Mon, Feb 04, 2008 at 02:32:59AM +0100, Bart Champagne wrote:
 Just found another type of Seagate drives that shows this behaviour : 
 ST310211A
 Can this one be blacklisted as well ?

Yes, do you have a patch? And a dmesg dump of the drive in use with and 
without a patch?

If you do, please send them to upstream [EMAIL PROTECTED] and hope
that the fix gets applied to Debian kernels too. Also, please test the
sata/pata driver with your drive and add a blacklist there too.

If you don't have a patch, here's one for 2.6.24 to go.

From 4a8b40c53d2e539bad3f93996f599d69a16af94b Mon Sep 17 00:00:00 2001
From: Mikko Rapeli [EMAIL PROTECTED]
Date: Wed, 6 Feb 2008 09:41:14 +0200
Subject: [PATCH] ST310211A has buggy HPA too.

Signed-off-by: Mikko Rapeli [EMAIL PROTECTED]
---
 drivers/ata/libata-core.c |1 +
 drivers/ide/ide-disk.c|1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 6380726..d08f869 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4169,6 +4169,7 @@ static const struct ata_blacklist_entry 
ata_device_blacklist [] = {
/* Devices which report 1 sector over size HPA */
{ ST340823A,  NULL,   ATA_HORKAGE_HPA_SIZE, },
{ ST320413A,  NULL,   ATA_HORKAGE_HPA_SIZE, },
+   { ST310211A,  NULL,   ATA_HORKAGE_HPA_SIZE, },
 
/* Devices which get the IVB wrong */
{ QUANTUM FIREBALLlct10 05, A03.0900, ATA_HORKAGE_IVB, },
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index b178190..a0f9940 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -462,6 +462,7 @@ static inline int idedisk_supports_lba48(const struct 
hd_driveid *id)
 static const struct drive_list_entry hpa_list[] = {
{ ST340823A,  NULL },
{ ST320413A,  NULL },
+   { ST310211A,  NULL },
{ NULL, NULL }
 };
 
-- 
1.4.4.4




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]