lkml.org 
[lkml]   [2003]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] 2.5 ide 48-bit usage
    On Thu, May 08 2003, Bartlomiej Zolnierkiewicz wrote:
    >
    > On Thu, 8 May 2003, Jens Axboe wrote:
    >
    > > n Thu, May 08 2003, Bartlomiej Zolnierkiewicz wrote:
    > > > if (!hwif->rqsize)
    > > > hwif->rqsize = hwif->addressing ? 65536 : 256;
    > >
    > > btw, you didn't get this right this time either :-)
    >
    > It is right.
    > hwif->addressing means hwif supports 48-bit

    No it doesn't, that's what I keep saying:

    static int probe_lba_addressing (ide_drive_t *drive, int arg)
    {
    drive->addressing = 0;
    if (HWIF(drive)->addressing)
    return 0;
    ...

    so if hwif->addressing != 0, you will never allow 48-bit lba on any
    units on this hardware interface. So the correct logic is:

    hwif->rqsize = hwif->addressing ? 256 : 65536;

    as in the patch.

    > hwif->rqsize means max rq size for _hwif_

    Correct.

    > > drive->addressing == 1, 48-bit is ok
    > > hwif->addressing == 1, 48-bit is _not_ ok
    >
    > And?
    > Even if !drive->addressing, hwif->addressing can be 1,

    If hwif->addressing == 1, drive->addressing will never be anything _but_
    0.

    > so hwif->rqsize can be 65536.

    Wrong

    > > below patch covers the lat change as well, boots and works on my router.
    >
    > Patch still misses pdx202xx_old.c changes :-).

    Which?

    > Two new ones:
    > - rq_lba48(rq) should check for rq->hard_* values

    Doesn't matter. I actually only thought about dma, in which case it
    doesn't matter because we never change sector or nr_sectors until after
    we have called ide_dma_end. For pio, it's no more reliable with hard_*
    than without. This is all for end_request context of course, at init
    time it's all the same. Essentially, we _need_ the taskfile changes for
    this to work. In that case we can limit rq_lba48() to init request time,
    and set task->addressing and use that from then on.

    > - after some thought, drop _all_ changes to ide_dump_status()
    > (we may hit error when rq->nr_sectors is already < 256)

    Ditto, cannot be reliable without the taskfile changes.

    I won't bother with anything new until the taskfile stuff is in.

    --
    Jens Axboe

    -
    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 13:35    [from the cache]
    ©2003-2011 Jasper Spaans