brd: use bvec_kmap_local in brd_do_bvec
authorChristoph Hellwig <hch@lst.de>
Mon, 28 Apr 2025 14:09:49 +0000 (07:09 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 28 Apr 2025 17:45:41 +0000 (11:45 -0600)
Use the proper helper to kmap a bvec in brd_do_bvec instead of directly
accessing the bvec fields and use the deprecated kmap_atomic API.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20250428141014.2360063-4-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/brd.c

index 91eb501263556298ab1db3de2580c928946e6076..0c70d29379f1b48c5282c86a7f060293edbad144 100644 (file)
@@ -207,15 +207,15 @@ static int brd_rw_bvec(struct brd_device *brd, struct bio_vec *bv,
                        return err;
        }
 
-       mem = kmap_atomic(bv->bv_page);
+       mem = bvec_kmap_local(bv);
        if (!op_is_write(opf)) {
-               copy_from_brd(mem + bv->bv_offset, brd, sector, bv->bv_len);
+               copy_from_brd(mem, brd, sector, bv->bv_len);
                flush_dcache_page(bv->bv_page);
        } else {
                flush_dcache_page(bv->bv_page);
-               copy_to_brd(brd, mem + bv->bv_offset, sector, bv->bv_len);
+               copy_to_brd(brd, mem, sector, bv->bv_len);
        }
-       kunmap_atomic(mem);
+       kunmap_local(mem);
        return 0;
 }