From: Andrew Morton drivers/block/pktcdvd.c: In function 'pkt_init_queue': drivers/block/pktcdvd.c:2664: warning: passing argument 2 of 'blk_queue_merge_bvec' from incompatible pointer type it will crash... Cc: Jens Axboe Signed-off-by: Andrew Morton --- drivers/block/pktcdvd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff -puN drivers/block/pktcdvd.c~git-block-fix-drivers-block-pktcdvdc drivers/block/pktcdvd.c --- a/drivers/block/pktcdvd.c~git-block-fix-drivers-block-pktcdvdc +++ a/drivers/block/pktcdvd.c @@ -2635,11 +2635,12 @@ end_io: -static int pkt_merge_bvec(struct request_queue *q, struct bio *bio, struct bio_vec *bvec) +static int pkt_merge_bvec(struct request_queue *q, struct bvec_merge_data *bmd, + struct bio_vec *bvec) { struct pktcdvd_device *pd = q->queuedata; - sector_t zone = ZONE(bio->bi_sector, pd); - int used = ((bio->bi_sector - zone) << 9) + bio->bi_size; + sector_t zone = ZONE(bmd->bi_sector, pd); + int used = ((bmd->bi_sector - zone) << 9) + bmd->bi_size; int remaining = (pd->settings.size << 9) - used; int remaining2; @@ -2647,7 +2648,7 @@ static int pkt_merge_bvec(struct request * A bio <= PAGE_SIZE must be allowed. If it crosses a packet * boundary, pkt_make_request() will split the bio. */ - remaining2 = PAGE_SIZE - bio->bi_size; + remaining2 = PAGE_SIZE - bmd->bi_size; remaining = max(remaining, remaining2); BUG_ON(remaining < 0); _