FROMLIST: arm64: define __alloc_zeroed_user_highpage
When running the kernel with init_on_alloc=1, calling the default implementation of __alloc_zeroed_user_highpage() from include/linux/highmem.h leads to double-initialization of the allocated page (first by the page allocator, then by clear_user_page(). Calling alloc_page_vma() with __GFP_ZERO, similarly to e.g. x86, seems to be enough to ensure the user page is zeroed only once. Signed-off-by: Alexander Potapenko <glider@google.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Bug: 149975351 Link: https://lore.kernel.org/linux-arm-kernel/20200312155920.50067-1-glider@google.com/ Change-Id: I3ff7c3fb082b420491313e0fdd841ce340989d72 Signed-off-by: Alexander Potapenko <glider@google.com>
This commit is contained in:
parent
05cf04f60a
commit
23c8ef5a2f
@ -32,6 +32,10 @@ extern void __cpu_copy_user_page(void *to, const void *from,
|
||||
extern void copy_page(void *to, const void *from);
|
||||
extern void clear_page(void *to);
|
||||
|
||||
#define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \
|
||||
alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr)
|
||||
#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
|
||||
|
||||
#define clear_user_page(addr,vaddr,pg) __cpu_clear_user_page(addr, vaddr)
|
||||
#define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user