mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
ps3disk: use memcpy_{from,to}_bvec
Use the bvec helpers instead of open coding the copy. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Tested-by: Geoff Levand <geoff@infradead.org> Link: https://lore.kernel.org/r/20210727055646.118787-9-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
18a6234ccf
commit
6e0a48552b
@@ -83,26 +83,12 @@ static void ps3disk_scatter_gather(struct ps3_storage_device *dev,
|
|||||||
unsigned int offset = 0;
|
unsigned int offset = 0;
|
||||||
struct req_iterator iter;
|
struct req_iterator iter;
|
||||||
struct bio_vec bvec;
|
struct bio_vec bvec;
|
||||||
unsigned int i = 0;
|
|
||||||
size_t size;
|
|
||||||
void *buf;
|
|
||||||
|
|
||||||
rq_for_each_segment(bvec, req, iter) {
|
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)
|
if (gather)
|
||||||
memcpy(dev->bounce_buf+offset, buf, size);
|
memcpy_from_bvec(dev->bounce_buf + offset, &bvec);
|
||||||
else
|
else
|
||||||
memcpy(buf, dev->bounce_buf+offset, size);
|
memcpy_to_bvec(&bvec, dev->bounce_buf + offset);
|
||||||
offset += size;
|
|
||||||
flush_kernel_dcache_page(bvec.bv_page);
|
|
||||||
bvec_kunmap_irq(buf, &flags);
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user