Messages in this thread Patch in this message | | | Date | Tue, 30 Mar 2004 17:28:12 +0200 (MEST) | From | Geert Uytterhoeven <> | Subject | Re: [PATCH] Bogus LBA48 drives |
| |
On Tue, 30 Mar 2004, Geert Uytterhoeven wrote: > Apparently some IDE drives (e.g. a pile of 80 GB ST380020ACE drives I have > access to) advertise to support LBA48, but don't, causing kernels that support > LBA48 (i.e. anything newer than 2.4.18, including 2.4.25 and 2.6.4) to fail on > them. Older kernels (including 2.2.20 on the Debian woody CDs) work fine. > > One problem with those drives is that the lba_capacity_2 field in their drive > identification is set to 0, making the IDE driver think the disk is 0 bytes > large. At first I tried modifying the driver to use lba_capacity if > lba_capacity_2 is set to 0, but this caused disk errors. So it looks like those > drives don't support the increased transfer size of LBA48 neither. > > I added a workaround for these drives to both 2.4.25 and 2.6.4. I'll send > patches in follow-up emails.
Patch for 2.6.4 (and 2.6.5-rc3): - Check for lba_capacity_2 being non-zero in idedisk_supports_lba48()
--- linux-2.6.4/drivers/ide/ide-disk.c.orig 2004-03-12 12:02:53.000000000 +0100 +++ linux-2.6.4/drivers/ide/ide-disk.c 2004-03-26 13:54:39.000000000 +0100 @@ -1058,7 +1058,8 @@ */ static inline int idedisk_supports_lba48(const struct hd_driveid *id) { - return (id->command_set_2 & 0x0400) && (id->cfs_enable_2 & 0x0400); + return (id->command_set_2 & 0x0400) && (id->cfs_enable_2 & 0x0400) + && id->lba_capacity_2; }
static inline void idedisk_check_hpa(ide_drive_t *drive) Gr{oetje,eeting}s, Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |