summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-02-12 17:00:39 +0900
committerPaul Mundt <lethal@linux-sh.org>2008-02-14 14:22:11 +0900
commitf1f8926a94132e6433b559a3eced65404226f5cd (patch)
tree2587a41aef692f7d4f7d83af64254ae84fb71883
parent5e9c8ac5699f2a830fab2c224b6f57bd7da338b8 (diff)
sh: Update SH-5 flush_cache_sigtramp() for API changes.
Previously this took an explicit range, update this to use the same behaviour as the rest of the SH parts where we simply flush out a line from the start address. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-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 4617e3aeee7..5d1f615fe52 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,
ARCH/SH64 PRIVATE CALLABLE API.
##########################################################################*/
-void flush_cache_sigtramp(unsigned long start, unsigned long end)
+void flush_cache_sigtramp(unsigned long vaddr)
{
+ unsigned long end = vaddr + L1_CACHE_BYTES;
+
/* For the address range [start,end), write back the data from the
D-cache and invalidate the corresponding region of the I-cache for
the current process. Used to flush signal trampolines on the stack
to make them executable. */
- sh64_dcache_wback_current_user_range(start, end);
+ sh64_dcache_wback_current_user_range(vaddr, end);
wmb();
- sh64_icache_inv_current_user_range(start, end);
+ sh64_icache_inv_current_user_range(vaddr, end);
}
diff --git a/include/asm-sh/cpu-sh5/cacheflush.h b/include/asm-sh/cpu-sh5/cacheflush.h
index 98edb5b1da3..f935acbacf3 100644
--- a/include/asm-sh/cpu-sh5/cacheflush.h
+++ b/include/asm-sh/cpu-sh5/cacheflush.h
@@ -11,7 +11,7 @@ struct mm_struct;
extern void flush_cache_all(void);
extern void flush_cache_mm(struct mm_struct *mm);
-extern void flush_cache_sigtramp(unsigned long start, unsigned long end);
+extern void flush_cache_sigtramp(unsigned long vaddr);
extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
unsigned long end);
extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);