Bug#401035: ST310211A and HPA ( was Re: Bug#401035: linux-image-2.6-686 - another misbehaving Seagate )
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 )
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 )
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 )
(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]