Re: PATCH: 2.6.10 - Still mishandles volumes without geometry data

From: Bartlomiej Zolnierkiewicz
Date: Tue Dec 28 2004 - 15:49:29 EST


On Mon, 27 Dec 2004 13:57:20 +0000, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> An IDE device can choose not to report geometry. In this situation the
> base 2.6 kernel tries to verify the LBA data despite having nothing to
> validate it against and prints it out (although now only as pr_debug).
>
> This patch fixes these problems and has in various forms been in
> 2.6.9-ac and Fedora Core for a considerable time now
>
> diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.10/drivers/ide/ide-disk.c linux-2.6.10/drivers/ide/ide-disk.c
> --- linux.vanilla-2.6.10/drivers/ide/ide-disk.c 2004-12-25 21:15:34.000000000 +0000
> +++ linux-2.6.10/drivers/ide/ide-disk.c 2004-12-26 21:55:43.084714368 +0000
> @@ -84,6 +84,10 @@
> {
> unsigned long lba_sects, chs_sects, head, tail;
>
> + /* No non-LBA info .. so valid! */
> + if (id->cyls == 0)
> + return 1;
> +
> /*
> * The ATA spec tells large drives to return
> * C/H/S = 16383/16/63 independent of their size.
> @@ -201,7 +205,8 @@
> head = track % drive->head;
> cyl = track / drive->head;
>
> - pr_debug("%s: CHS=%u/%u/%u\n", drive->name, cyl, head, sect);
> + if(drive->bios_cyl)
> + pr_debug("%s: CHS=%u/%u/%u\n", drive->name, cyl, head, sect);
>
> hwif->OUTB(0x00, IDE_FEATURE_REG);
> hwif->OUTB(nsectors.b.low, IDE_NSECTOR_REG);

Shouldn't this check be around printk in idedisk_setup() instead?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/