diff mbox series

[2/4] brd: use memcpy_to_page() in copy_to_brd()

Message ID 20230328195626.12075-3-kch@nvidia.com (mailing list archive)
State New, archived
Headers show
Series brd: usr memcpy_[to|from]_page() in brd | expand

Commit Message

Chaitanya Kulkarni March 28, 2023, 7:56 p.m. UTC
In copy_to_brd() it uses kmap_atomic() call on the page in question to
create destination page mapping on buffer (dst), then it uses memcpy()
call to copy the data from source pointer onto mapped buffer (dst) with
added offset and size equals to number of bytes stored in copy variable.
Then it uses the kunmap_atomic(), also from :include/linux/highmem.h:

"kmap_atomic - Atomically map a page for temporary usage - Deprecated!"

Use memcpy_from_page() does the same job of mapping and copying except
it uses non deprecated kmap_local_page() and kunmap_local().

Use memcpy_from_page() does the same job of mapping and copying except
it uses non deprecated kmap_local_page() and kunmap_local().

Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
---
 drivers/block/brd.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index 91ab0a76a39f..4948cfdd83ac 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -189,7 +189,6 @@  static void copy_to_brd(struct brd_device *brd, const void *src,
 			sector_t sector, size_t n)
 {
 	struct page *page;
-	void *dst;
 	unsigned int offset = (sector & (PAGE_SECTORS-1)) << SECTOR_SHIFT;
 	size_t copy;
 
@@ -206,9 +205,7 @@  static void copy_to_brd(struct brd_device *brd, const void *src,
 		page = brd_lookup_page(brd, sector);
 		BUG_ON(!page);
 
-		dst = kmap_atomic(page);
-		memcpy(dst, src, copy);
-		kunmap_atomic(dst);
+		memcpy_to_page(page, 0, src, copy);
 	}
 }