Re: [PATCH 1/4] mm/highmem: Lift memcpy_[to|from]_page to core
From: Ira Weiny <hidden>
Date: 2021-02-08 03:14:23
Also in:
lkml
On Sun, Feb 07, 2021 at 01:46:47AM +0000, Chaitanya Kulkarni wrote:
On 2/5/21 18:35, ira.weiny@intel.com wrote:quoted
+static inline void memmove_page(struct page *dst_page, size_t dst_off, + struct page *src_page, size_t src_off, + size_t len) +{ + char *dst = kmap_local_page(dst_page); + char *src = kmap_local_page(src_page); + + BUG_ON(dst_off + len > PAGE_SIZE || src_off + len > PAGE_SIZE); + memmove(dst + dst_off, src + src_off, len); + kunmap_local(src); + kunmap_local(dst); +} + +static inline void memcpy_from_page(char *to, struct page *page, size_t offset, size_t len)How about following ? static inline void memcpy_from_page(char *to, struct page *page, size_t offset, size_t len)
It is an easy change and It is up to Andrew. But I thought we were making the line length limit longer now. Ira
quoted
+{ + char *from = kmap_local_page(page); + + BUG_ON(offset + len > PAGE_SIZE); + memcpy(to, from + offset, len); + kunmap_local(from); +} + +static inline void memcpy_to_page(struct page *page, size_t offset, const char *from, size_t len)How about following ? static inline void memcpy_to_page(struct page *page, size_t offset, const char *from, size_t len)quoted
+{ + char *to = kmap_local_page(page); + + BUG_ON(offset + len > PAGE_SIZE); + memcpy(to + offset, from, len); + kunmap_local(to); +} + +static inline void memset_page(struct page *page, size_t offset, int val, size_t len)How about following ? static inline void memset_page(struct page *page, size_t offset, int val, size_t len)quoted
+{ + char *addr = kmap_local_page(page); + + BUG_ON(offset + len > PAGE_SIZE); + memset(addr + offset, val, len); + kunmap_local(addr); +} +