summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@libc.org>2016-02-15 18:36:33 +0000
committerRich Felker <dalias@libc.org>2016-06-08 00:36:00 +0000
commit0ef5f109e8a279e9d65b15a5e6cb19b9dd5116b6 (patch)
treecf2420dbaa455194f2391a8639a3ffc6a7fc5dfb
parent87ef006cf63c79eea22513bef16a48c60e776802 (diff)
downloadlinux-sh-0ef5f109e8a279e9d65b15a5e6cb19b9dd5116b6.tar.gz
sh: do not perform IPI-based cache flush except on boards that need it
Signed-off-by: Rich Felker <dalias@libc.org>
-rw-r--r--arch/sh/mm/cache.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c
index 70cc52f2fab8..36554a9ea99b 100644
--- a/arch/sh/mm/cache.c
+++ b/arch/sh/mm/cache.c
@@ -42,6 +42,8 @@ static inline void cacheop_on_each_cpu(void (*func) (void *info), void *info,
{
preempt_disable();
+ /* Needing IPI for cross-core flush is SHX3-specific. */
+#ifdef CONFIG_CPU_SHX3
/*
* It's possible that this gets called early on when IRQs are
* still disabled due to ioremapping by the boot CPU, so don't
@@ -49,6 +51,7 @@ static inline void cacheop_on_each_cpu(void (*func) (void *info), void *info,
*/
if (num_online_cpus() > 1)
smp_call_function(func, info, wait);
+#endif
func(info);