diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index b83ecfb2fbfc703cffa2f7cf1663cb5311aca9a1..1b4b583fab08eeb102caa365309bc6743ab02045 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c @@ -1505,6 +1505,14 @@ static void probe_pcache(void) if (c->dcache.flags & MIPS_CACHE_PINDEX) c->dcache.flags &= ~MIPS_CACHE_ALIASES; + /* + * In systems with CM the icache fills from L2 or closer caches, and + * thus sees remote stores without needing to write them back any + * further than that. + */ + if (mips_cm_present()) + c->icache.flags |= MIPS_IC_SNOOPS_REMOTE; + switch (current_cpu_type()) { case CPU_20KC: /*