summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2010-05-06 16:15:28 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-05-08 11:44:22 +0200
commitb5a07faadeb4e0cfd6dcee359e501d4755cab875 (patch)
tree5067c51450d33e64316084c0eecac15e0326119c
parentARM: 6105/1: Fix the __arm_ioremap_caller() definition in nommu.c (diff)
downloadlinux-b5a07faadeb4e0cfd6dcee359e501d4755cab875.tar.xz
linux-b5a07faadeb4e0cfd6dcee359e501d4755cab875.zip
ARM: 6106/1: Implement copy_to_user_page() for noMMU
Commit 7959722 introduced calls to copy_(to|from)_user_page() from access_process_vm() in mm/nommu.c. The copy_to_user_page() was not implemented on noMMU ARM. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/mm/nommu.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
index f8791eed7594..33b327379f07 100644
--- a/arch/arm/mm/nommu.c
+++ b/arch/arm/mm/nommu.c
@@ -65,6 +65,15 @@ void flush_dcache_page(struct page *page)
}
EXPORT_SYMBOL(flush_dcache_page);
+void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
+ unsigned long uaddr, void *dst, const void *src,
+ unsigned long len)
+{
+ memcpy(dst, src, len);
+ if (vma->vm_flags & VM_EXEC)
+ __cpuc_coherent_user_range(uaddr, uaddr + len);
+}
+
void __iomem *__arm_ioremap_pfn(unsigned long pfn, unsigned long offset,
size_t size, unsigned int mtype)
{