aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sh/mm/cache-sh5.c8
-rw-r--r--include/asm-sh/cpu-sh5/cacheflush.h2
2 files changed, 6 insertions, 4 deletions
diff --git a/arch/sh/mm/cache-sh5.c b/arch/sh/mm/cache-sh5.c
index 4617e3aeee73..5d1f615fe525 100644
--- a/arch/sh/mm/cache-sh5.c
+++ b/arch/sh/mm/cache-sh5.c
@@ -1015,15 +1015,17 @@ void flush_icache_user_range(struct vm_area_struct *vma,
1015 ARCH/SH64 PRIVATE CALLABLE API. 1015 ARCH/SH64 PRIVATE CALLABLE API.
1016 ##########################################################################*/ 1016 ##########################################################################*/
1017 1017
1018void flush_cache_sigtramp(unsigned long start, unsigned long end) 1018void flush_cache_sigtramp(unsigned long vaddr)
1019{ 1019{
1020 unsigned long end = vaddr + L1_CACHE_BYTES;
1021
1020 /* For the address range [start,end), write back the data from the 1022 /* For the address range [start,end), write back the data from the
1021 D-cache and invalidate the corresponding region of the I-cache for 1023 D-cache and invalidate the corresponding region of the I-cache for
1022 the current process. Used to flush signal trampolines on the stack 1024 the current process. Used to flush signal trampolines on the stack
1023 to make them executable. */ 1025 to make them executable. */
1024 1026
1025 sh64_dcache_wback_current_user_range(start, end); 1027 sh64_dcache_wback_current_user_range(vaddr, end);
1026 wmb(); 1028 wmb();
1027 sh64_icache_inv_current_user_range(start, end); 1029 sh64_icache_inv_current_user_range(vaddr, end);
1028} 1030}
1029 1031
diff --git a/include/asm-sh/cpu-sh5/cacheflush.h b/include/asm-sh/cpu-sh5/cacheflush.h
index 98edb5b1da32..f935acbacf38 100644
--- a/include/asm-sh/cpu-sh5/cacheflush.h
+++ b/include/asm-sh/cpu-sh5/cacheflush.h
@@ -11,7 +11,7 @@ struct mm_struct;
11 11
12extern void flush_cache_all(void); 12extern void flush_cache_all(void);
13extern void flush_cache_mm(struct mm_struct *mm); 13extern void flush_cache_mm(struct mm_struct *mm);
14extern void flush_cache_sigtramp(unsigned long start, unsigned long end); 14extern void flush_cache_sigtramp(unsigned long vaddr);
15extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, 15extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
16 unsigned long end); 16 unsigned long end);
17extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn); 17extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);