Use the bvec helpers instead of open coding the copy.

Signed-off-by: Christoph Hellwig <h...@lst.de>
---
 drivers/block/ps3disk.c | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/drivers/block/ps3disk.c b/drivers/block/ps3disk.c
index ba3ece56cbb3..f2eb0225814f 100644
--- a/drivers/block/ps3disk.c
+++ b/drivers/block/ps3disk.c
@@ -84,26 +84,13 @@ static void ps3disk_scatter_gather(struct 
ps3_storage_device *dev,
        unsigned int offset = 0;
        struct req_iterator iter;
        struct bio_vec bvec;
-       unsigned int i = 0;
-       size_t size;
-       void *buf;
 
        rq_for_each_segment(bvec, req, iter) {
-               unsigned long flags;
-               dev_dbg(&dev->sbd.core, "%s:%u: bio %u: %u sectors from %llu\n",
-                       __func__, __LINE__, i, bio_sectors(iter.bio),
-                       iter.bio->bi_iter.bi_sector);
-
-               size = bvec.bv_len;
-               buf = bvec_kmap_irq(&bvec, &flags);
                if (gather)
-                       memcpy(dev->bounce_buf+offset, buf, size);
+                       memcpy_from_bvec(dev->bounce_buf + offset, &bvec);
                else
-                       memcpy(buf, dev->bounce_buf+offset, size);
-               offset += size;
-               flush_kernel_dcache_page(bvec.bv_page);
-               bvec_kunmap_irq(buf, &flags);
-               i++;
+                       memcpy_to_bvec(&bvec, dev->bounce_buf + offset);
+               offset += bvec.bv_len;
        }
 }
 
-- 
2.30.2

Reply via email to