ide-floppy: block pc always uses bio
authorTejun Heo <tj@kernel.org>
Sat, 18 Apr 2009 22:00:42 +0000 (07:00 +0900)
committerTejun Heo <tj@kernel.org>
Sat, 18 Apr 2009 22:00:42 +0000 (07:00 +0900)
Impact: remove unnecessary code path

Block pc requests always use bio and rq->data is always NULL.  No need
to worry about !rq->bio cases in idefloppy_block_pc_cmd().  Note that
ide-atapi uses ide_pio_bytes() for bio PIO transfer which handle sg
fine.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
drivers/ide/ide-floppy.c

index 2b4868d95f8b0597de827c36df575cec1375d8f7..3b22e066287e096949de66590fa40e11061abd8c 100644 (file)
@@ -216,15 +216,13 @@ static void idefloppy_blockpc_cmd(struct ide_disk_obj *floppy,
        ide_init_pc(pc);
        memcpy(pc->c, rq->cmd, sizeof(pc->c));
        pc->rq = rq;
-       if (rq->data_len && rq_data_dir(rq) == WRITE)
-               pc->flags |= PC_FLAG_WRITING;
-       pc->buf = rq->data;
-       if (rq->bio)
+       if (rq->data_len) {
                pc->flags |= PC_FLAG_DMA_OK;
-       /*
-        * possibly problematic, doesn't look like ide-floppy correctly
-        * handled scattered requests if dma fails...
-        */
+               if (rq_data_dir(rq) == WRITE)
+                       pc->flags |= PC_FLAG_WRITING;
+       }
+       /* pio will be performed by ide_pio_bytes() which handles sg fine */
+       pc->buf = NULL;
        pc->req_xfer = pc->buf_size = rq->data_len;
 }