aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-03-04 16:47:30 +0900
committerPaul Mundt <lethal@linux-sh.org>2010-03-04 16:47:30 +0900
commitb07f6b327e798610bebaa581ffb7a226f3bcb96b (patch)
tree36bde0b8a002aa0681cd997dee84e7590a5d0193
parent281983d6ff2674ca2e4868de628c65809d84fa4c (diff)
downloadkernel_samsung_smdk4412-b07f6b327e798610bebaa581ffb7a226f3bcb96b.tar.gz
kernel_samsung_smdk4412-b07f6b327e798610bebaa581ffb7a226f3bcb96b.tar.bz2
kernel_samsung_smdk4412-b07f6b327e798610bebaa581ffb7a226f3bcb96b.zip
sh: Fix up flush_cache_vmap() on SMP.
flush_cache_all() uses broadcast IPIs, so we can't wrap in to that when IRQs are disabled. The local cache flush manages to do what we need here anyways, so just switch to that. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--arch/sh/include/asm/cacheflush.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sh/include/asm/cacheflush.h b/arch/sh/include/asm/cacheflush.h
index da3ebec921a..1f4e562c5e8 100644
--- a/arch/sh/include/asm/cacheflush.h
+++ b/arch/sh/include/asm/cacheflush.h
@@ -86,8 +86,8 @@ extern void copy_from_user_page(struct vm_area_struct *vma,
struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len);
-#define flush_cache_vmap(start, end) flush_cache_all()
-#define flush_cache_vunmap(start, end) flush_cache_all()
+#define flush_cache_vmap(start, end) local_flush_cache_all(NULL)
+#define flush_cache_vunmap(start, end) local_flush_cache_all(NULL)
#define flush_dcache_mmap_lock(mapping) do { } while (0)
#define flush_dcache_mmap_unlock(mapping) do { } while (0)