summaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorAshok Kumar <ashoks@broadcom.com>2015-12-17 01:38:31 -0800
committerWill Deacon <will.deacon@arm.com>2015-12-17 11:07:13 +0000
commite6b1185f77351aa154e63bd54b05d07ff99d4ffa (patch)
tree4bea75cad29fc76a11c0856834733551de00f8ef /arch/arm64
parent971c67ce37cfeeaf560e792a2c3bc21d8b67163a (diff)
downloadlinux-e6b1185f77351aa154e63bd54b05d07ff99d4ffa.tar.gz
linux-e6b1185f77351aa154e63bd54b05d07ff99d4ffa.tar.bz2
linux-e6b1185f77351aa154e63bd54b05d07ff99d4ffa.zip
arm64: Defer dcache flush in __cpu_copy_user_page
Defer dcache flushing to __sync_icache_dcache by calling flush_dcache_page which clears PG_dcache_clean flag. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Ashok Kumar <ashoks@broadcom.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/mm/copypage.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm64/mm/copypage.c b/arch/arm64/mm/copypage.c
index 13bbc3be6f5a..22e4cb4d6f53 100644
--- a/arch/arm64/mm/copypage.c
+++ b/arch/arm64/mm/copypage.c
@@ -24,8 +24,9 @@
void __cpu_copy_user_page(void *kto, const void *kfrom, unsigned long vaddr)
{
+ struct page *page = virt_to_page(kto);
copy_page(kto, kfrom);
- __flush_dcache_area(kto, PAGE_SIZE);
+ flush_dcache_page(page);
}
EXPORT_SYMBOL_GPL(__cpu_copy_user_page);