Loading arch/riscv/kernel/head.S +10 −2 Original line number Diff line number Diff line Loading @@ -96,7 +96,9 @@ relocate: /* * Load trampoline page directory, which will cause us to trap to * stvec if VA != PA, or simply fall through if VA == PA * stvec if VA != PA, or simply fall through if VA == PA. We need a * full fence here because setup_vm() just wrote these PTEs and we need * to ensure the new translations are in use. */ la a0, trampoline_pg_dir srl a0, a0, PAGE_SHIFT Loading @@ -115,8 +117,14 @@ relocate: la gp, __global_pointer$ .option pop /* Switch to kernel page tables */ /* * Switch to kernel page tables. A full fence is necessary in order to * avoid using the trampoline translations, which are only correct for * the first superpage. Fetching the fence is guarnteed to work * because that first superpage is translated the same way. */ csrw CSR_SATP, a2 sfence.vma ret Loading Loading
arch/riscv/kernel/head.S +10 −2 Original line number Diff line number Diff line Loading @@ -96,7 +96,9 @@ relocate: /* * Load trampoline page directory, which will cause us to trap to * stvec if VA != PA, or simply fall through if VA == PA * stvec if VA != PA, or simply fall through if VA == PA. We need a * full fence here because setup_vm() just wrote these PTEs and we need * to ensure the new translations are in use. */ la a0, trampoline_pg_dir srl a0, a0, PAGE_SHIFT Loading @@ -115,8 +117,14 @@ relocate: la gp, __global_pointer$ .option pop /* Switch to kernel page tables */ /* * Switch to kernel page tables. A full fence is necessary in order to * avoid using the trampoline translations, which are only correct for * the first superpage. Fetching the fence is guarnteed to work * because that first superpage is translated the same way. */ csrw CSR_SATP, a2 sfence.vma ret Loading