summaryrefslogtreecommitdiff
path: root/kernel/trampoline.S
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trampoline.S')
-rw-r--r--kernel/trampoline.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/trampoline.S b/kernel/trampoline.S
index b992ea6..471a29c 100644
--- a/kernel/trampoline.S
+++ b/kernel/trampoline.S
@@ -17,7 +17,8 @@ trampout:
# a0: p->tf in user page table
# a1: new value for satp, for user page table
- # switch to user page table
+ # switch to user page table.
+ sfence.vma zero, zero
csrw satp, a1
# put the saved user a0 in sscratch, so we
@@ -128,6 +129,7 @@ trampin:
# restore kernel page table from p->tf->kernel_satp
ld t1, 0(a0)
+ sfence.vma zero, zero
csrw satp, t1
# a0 is no longer valid, since the kernel page