aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/cache-shx3.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/mm/cache-shx3.c')
-rw-r--r--arch/sh/mm/cache-shx3.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/sh/mm/cache-shx3.c b/arch/sh/mm/cache-shx3.c
index 65936c4fef03..c0adbee97b5f 100644
--- a/arch/sh/mm/cache-shx3.c
+++ b/arch/sh/mm/cache-shx3.c
@@ -21,9 +21,18 @@ void __init shx3_cache_init(void)
ccr = __raw_readl(CCR);
- if (boot_cpu_data.dcache.n_aliases)
+ /*
+ * If we've got cache aliases, resolve them in hardware.
+ */
+ if (boot_cpu_data.dcache.n_aliases || boot_cpu_data.icache.n_aliases) {
ccr |= CCR_CACHE_SNM;
+ boot_cpu_data.icache.n_aliases = 0;
+ boot_cpu_data.dcache.n_aliases = 0;
+
+ pr_info("Enabling hardware synonym avoidance\n");
+ }
+
#ifdef CONFIG_SMP
/*
* Broadcast I-cache block invalidations by default.