[RFC PATCH] uprobes: copy to user-space xol page with proper cache flushing
Catalin Marinas
catalin.marinas at arm.com
Wed Apr 23 03:45:03 PDT 2014
On Thu, Apr 10, 2014 at 11:45:31PM -0400, David Long wrote:
> diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
> index 04709b6..2e976fb 100644
> --- a/kernel/events/uprobes.c
> +++ b/kernel/events/uprobes.c
> @@ -241,7 +241,7 @@ static void copy_from_page(struct page *page, unsigned long vaddr, void *dst, in
> static void copy_to_page(struct page *page, unsigned long vaddr, const void *src, int len)
> {
> void *kaddr = kmap_atomic(page);
> - memcpy(kaddr + (vaddr & ~PAGE_MASK), src, len);
> + copy_to_user_page(NULL, page, vaddr, kaddr + (vaddr & ~PAGE_MASK), src, len);
> kunmap_atomic(kaddr);
> }
Rather than changing all the architectures to be able to pass a NULL vma
to copy_to_user_page(), you can create a dummy vma on the stack with the
VM_EXEC flag and pass a pointer to it.
--
Catalin
More information about the linux-arm-kernel
mailing list