lkml.org 
[lkml]   [2004]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: PATCH: 2.6.10 - Still mishandles volumes without geometry data
On Tue, Dec 28, 2004 at 10:08:23PM +0000, Alan Cox wrote:
> Ok how about this revision which also silences the boot time CHS data as
> Bartlomiej suggested.
>
> --- 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-28 23:07:13.195925352 +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.

Reasonable in case this actually occurs. Do you have examples?

> @@ -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(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);

Unreasonable. This part must be a misunderstanding.
The cyl here is not the number of cylinders of a disk,
it is the cylinder affected by I/O and may well be zero.

> @@ -1239,8 +1257,9 @@
> if (id->buf_size)
> printk (" w/%dKiB Cache", id->buf_size/2);
>
> - printk(", CHS=%d/%d/%d",
> - drive->bios_cyl, drive->bios_head, drive->bios_sect);
> + if(drive->bios_cyl)
> + printk(", CHS=%d/%d/%d",
> + drive->bios_cyl, drive->bios_head, drive->bios_sect);
> if (drive->using_dma)
> ide_dma_verbose(drive);
> printk("\n");

Reasonable. (But s/if(/if (/ .)
On the other hand, I like the "CHS=0/0/0" - it makes very clear what is wrong
in case lilo or so has geometry problems.

Andries
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:09    [W:0.053 / U:0.632 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site