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:5.767 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site