2021-02-10 08:35:39

by Ira Weiny

[permalink] [raw]
Subject: [PATCH V2 2/8] mm/highmem: Convert memcpy_[to|from]_page() to kmap_local_page()

From: Ira Weiny <[email protected]>

kmap_local_page() is more efficient and is well suited for these calls.
Convert the kmap() to kmap_local_page()

Cc: Andrew Morton <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Signed-off-by: Ira Weiny <[email protected]>
---
New for V2
---
include/linux/highmem.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 736b6a9f144d..c17a175fe5fe 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -279,19 +279,19 @@ static inline void copy_highpage(struct page *to, struct page *from)
static inline void memcpy_from_page(char *to, struct page *page,
size_t offset, size_t len)
{
- char *from = kmap_atomic(page);
+ char *from = kmap_local_page(page);

memcpy(to, from + offset, len);
- kunmap_atomic(from);
+ kunmap_local(from);
}

static inline void memcpy_to_page(struct page *page, size_t offset,
const char *from, size_t len)
{
- char *to = kmap_atomic(page);
+ char *to = kmap_local_page(page);

memcpy(to + offset, from, len);
- kunmap_atomic(to);
+ kunmap_local(to);
}

#endif /* _LINUX_HIGHMEM_H */
--
2.28.0.rc0.12.gb6a658bd00c9


2021-02-10 08:38:06

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: [PATCH V2 2/8] mm/highmem: Convert memcpy_[to|from]_page() to kmap_local_page()

On 2/9/21 22:25, [email protected] wrote:
> From: Ira Weiny <[email protected]>
>
> kmap_local_page() is more efficient and is well suited for these calls.
> Convert the kmap() to kmap_local_page()
>
> Cc: Andrew Morton <[email protected]>
> Cc: Christoph Hellwig <[email protected]>
> Signed-off-by: Ira Weiny <[email protected]>
Looks good.

Reviewed-by: Chaitanya Kulkarni <[email protected]>