From 5897c4e820e5a0547e86db942ad7ee0af2525e9b Mon Sep 17 00:00:00 2001 From: Haavard Skinnemoen Date: Mon, 3 Dec 2007 18:04:11 +0100 Subject: [PATCH] --- yaml --- r: 74703 b: refs/heads/master c: 68ca3e537f12044af05a653fa9d28b4fe80117e8 h: refs/heads/master i: 74701: f57a2e7bcf6ebeaf092a1413748d4b37428541fc 74699: 093a11650731bc979b4d1d8af5ad5dfd03ef0a84 74695: 16f75ae42354db760002bbe61f65ea142198c408 74687: 0a9dda6a9a389611306862986dd4514cd5879fd0 v: v3 --- [refs] | 2 +- trunk/arch/avr32/mm/cache.c | 20 ++++++++++---------- trunk/include/asm-avr32/cacheflush.h | 19 ++++++++++--------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/[refs] b/[refs] index bd9552c1d630..4019c53776e6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2507bc1338e43eadfef5b604d2c47e4f8180718f +refs/heads/master: 68ca3e537f12044af05a653fa9d28b4fe80117e8 diff --git a/trunk/arch/avr32/mm/cache.c b/trunk/arch/avr32/mm/cache.c index c1233c615e67..15a4e5e142c1 100644 --- a/trunk/arch/avr32/mm/cache.c +++ b/trunk/arch/avr32/mm/cache.c @@ -122,16 +122,6 @@ void flush_icache_page(struct vm_area_struct *vma, struct page *page) } } -/* - * This one is used by copy_to_user_page() - */ -void flush_icache_user_range(struct vm_area_struct *vma, struct page *page, - unsigned long addr, int len) -{ - if (vma->vm_flags & VM_EXEC) - flush_icache_range(addr, addr + len); -} - asmlinkage int sys_cacheflush(int operation, void __user *addr, size_t len) { int ret; @@ -159,3 +149,13 @@ asmlinkage int sys_cacheflush(int operation, void __user *addr, size_t len) out: return ret; } + +void copy_to_user_page(struct vm_area_struct *vma, struct page *page, + unsigned long vaddr, void *dst, const void *src, + unsigned long len) +{ + memcpy(dst, src, len); + if (vma->vm_flags & VM_EXEC) + flush_icache_range((unsigned long)dst, + (unsigned long)dst + len); +} diff --git a/trunk/include/asm-avr32/cacheflush.h b/trunk/include/asm-avr32/cacheflush.h index dfaaa88cd412..670674749b20 100644 --- a/trunk/include/asm-avr32/cacheflush.h +++ b/trunk/include/asm-avr32/cacheflush.h @@ -116,15 +116,16 @@ extern void flush_icache_page(struct vm_area_struct *vma, struct page *page); * flush with all configurations. */ extern void flush_icache_range(unsigned long start, unsigned long end); -extern void flush_icache_user_range(struct vm_area_struct *vma, - struct page *page, - unsigned long addr, int len); -#define copy_to_user_page(vma, page, vaddr, dst, src, len) do { \ - memcpy(dst, src, len); \ - flush_icache_user_range(vma, page, vaddr, len); \ -} while(0) -#define copy_from_user_page(vma, page, vaddr, dst, src, len) \ - memcpy(dst, src, len) +extern void copy_to_user_page(struct vm_area_struct *vma, struct page *page, + unsigned long vaddr, void *dst, const void *src, + unsigned long len); + +static inline void copy_from_user_page(struct vm_area_struct *vma, + struct page *page, unsigned long vaddr, void *dst, + const void *src, unsigned long len) +{ + memcpy(dst, src, len); +} #endif /* __ASM_AVR32_CACHEFLUSH_H */