Commit 21190b74 authored by Greentime Hu's avatar Greentime Hu Committed by Palmer Dabbelt

riscv: Add sfence.vma after early page table changes

This invalidates local TLB after modifying the page tables during early init as
it's too early to handle suprious faults as we otherwise do.

Fixes: f2c17aab ("RISC-V: Implement compile-time fixed mappings")
Reported-by: default avatarSyven Wang <syven.wang@sifive.com>
Signed-off-by: default avatarSyven Wang <syven.wang@sifive.com>
Signed-off-by: default avatarGreentime Hu <greentime.hu@sifive.com>
Reviewed-by: default avatarAnup Patel <anup@brainfault.org>
[Palmer: Cleaned up the commit text]
Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
parent 66d18dbd
...@@ -226,12 +226,11 @@ void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot) ...@@ -226,12 +226,11 @@ void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot)
ptep = &fixmap_pte[pte_index(addr)]; ptep = &fixmap_pte[pte_index(addr)];
if (pgprot_val(prot)) { if (pgprot_val(prot))
set_pte(ptep, pfn_pte(phys >> PAGE_SHIFT, prot)); set_pte(ptep, pfn_pte(phys >> PAGE_SHIFT, prot));
} else { else
pte_clear(&init_mm, addr, ptep); pte_clear(&init_mm, addr, ptep);
local_flush_tlb_page(addr); local_flush_tlb_page(addr);
}
} }
static pte_t *__init get_pte_virt(phys_addr_t pa) static pte_t *__init get_pte_virt(phys_addr_t pa)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment