09 Oct, 2008

1 commit


16 Oct, 2007

1 commit


10 Oct, 2007

1 commit

  • As bi_end_io is only called once when the reqeust is complete,
    the 'size' argument is now redundant. Remove it.

    Now there is no need for bio_endio to subtract the size completed
    from bi_size. So don't do that either.

    While we are at it, change bi_end_io to return void.

    Signed-off-by: Neil Brown
    Signed-off-by: Jens Axboe

    NeilBrown
     

24 Jul, 2007

1 commit

  • Some of the code has been gradually transitioned to using the proper
    struct request_queue, but there's lots left. So do a full sweet of
    the kernel and get rid of this typedef and replace its uses with
    the proper type.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

27 Mar, 2007

1 commit

  • There is a small problem in handling page bounce.

    At the moment blk_max_pfn equals max_pfn, which is in fact not maximum
    possible _number_ of a page frame, but the _amount_ of page frames. For
    example for the 32bit x86 node with 4Gb RAM, max_pfn = 0x100000, but not
    0xFFFF.

    request_queue structure has a member q->bounce_pfn and queue needs bounce
    pages for the pages _above_ this limit. This routine is handled by
    blk_queue_bounce(), where the following check is produced:

    if (q->bounce_pfn >= blk_max_pfn)
    return;

    Assume, that a driver has set q->bounce_pfn to 0xFFFF, but blk_max_pfn
    equals 0x10000. In such situation the check above fails and for each bio
    we always fall down for iterating over pages tied to the bio.

    I want to notice, that for quite a big range of device drivers (ide, md,
    ...) such problem doesn't happen because they use BLK_BOUNCE_ANY for
    bounce_pfn. BLK_BOUNCE_ANY is defined as blk_max_pfn << PAGE_SHIFT, and
    then the check above doesn't fail. But for other drivers, which obtain
    reuired value from drivers, it fails. For example sata_nv uses
    ATA_DMA_MASK or dev->dma_mask.

    I propose to use (max_pfn - 1) for blk_max_pfn. And the same for
    blk_max_low_pfn. The patch also cleanses some checks related with
    bounce_pfn.

    Signed-off-by: Vasily Tarasov
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Vasily Tarasov
     

13 Jan, 2007

1 commit

  • Currently we issue a bounce trace when __blk_queue_bounce() is called,
    but that merely means that the device has a lower dma mask than the
    higher pages in the system. The bio itself may still be lower pages. So
    move the bounce trace into __blk_queue_bounce(), when we know there will
    actually be page bouncing.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     

01 Oct, 2006

1 commit