diff options
Diffstat (limited to 'arch/tile')
-rw-r--r-- | arch/tile/mm/init.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c index e34597e512df..9a62479aafb4 100644 --- a/arch/tile/mm/init.c +++ b/arch/tile/mm/init.c @@ -653,6 +653,17 @@ static void __init kernel_physical_mapping_init(pgd_t *pgd_base) memcpy(pgd_base, pgtables, sizeof(pgtables)); __install_page_table(pgd_base, __get_cpu_var(current_asid), swapper_pgprot); + + /* + * We just read swapper_pgprot and thus brought it into the cache, + * with its new home & caching mode. When we start the other CPUs, + * they're going to reference swapper_pgprot via their initial fake + * VA-is-PA mappings, which cache everything locally. At that + * time, if it's in our cache with a conflicting home, the + * simulator's coherence checker will complain. So, flush it out + * of our cache; we're not going to ever use it again anyway. + */ + __insn_finv(&swapper_pgprot); } /* |