xref: /openbmc/linux/arch/arm64/mm/copypage.c (revision caab277b)
1caab277bSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
21d18c47cSCatalin Marinas /*
31d18c47cSCatalin Marinas  * Based on arch/arm/mm/copypage.c
41d18c47cSCatalin Marinas  *
51d18c47cSCatalin Marinas  * Copyright (C) 2002 Deep Blue Solutions Ltd, All Rights Reserved.
61d18c47cSCatalin Marinas  * Copyright (C) 2012 ARM Ltd.
71d18c47cSCatalin Marinas  */
81d18c47cSCatalin Marinas 
91d18c47cSCatalin Marinas #include <linux/mm.h>
101d18c47cSCatalin Marinas 
111d18c47cSCatalin Marinas #include <asm/page.h>
121d18c47cSCatalin Marinas #include <asm/cacheflush.h>
131d18c47cSCatalin Marinas 
141d18c47cSCatalin Marinas void __cpu_copy_user_page(void *kto, const void *kfrom, unsigned long vaddr)
151d18c47cSCatalin Marinas {
16e6b1185fSAshok Kumar 	struct page *page = virt_to_page(kto);
171d18c47cSCatalin Marinas 	copy_page(kto, kfrom);
18e6b1185fSAshok Kumar 	flush_dcache_page(page);
191d18c47cSCatalin Marinas }
20bec7cedcSMark Salter EXPORT_SYMBOL_GPL(__cpu_copy_user_page);
211d18c47cSCatalin Marinas 
221d18c47cSCatalin Marinas void __cpu_clear_user_page(void *kaddr, unsigned long vaddr)
231d18c47cSCatalin Marinas {
241d18c47cSCatalin Marinas 	clear_page(kaddr);
251d18c47cSCatalin Marinas }
26bec7cedcSMark Salter EXPORT_SYMBOL_GPL(__cpu_clear_user_page);
27