summaryrefslogtreecommitdiff
path: root/kernel/trampoline.S
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2022-08-24 13:24:24 -0400
committerRobert Morris <[email protected]>2022-08-24 13:24:24 -0400
commit9c1b8a4eb085d7c639c2039fc14beba83d95653e (patch)
treec278acf9ced36ffd58dcb27aac5a6ef2457d7a1e /kernel/trampoline.S
parent96047832c62e6a172c92f9ead6715b553d4c2271 (diff)
downloadxv6-labs-9c1b8a4eb085d7c639c2039fc14beba83d95653e.tar.gz
xv6-labs-9c1b8a4eb085d7c639c2039fc14beba83d95653e.tar.bz2
xv6-labs-9c1b8a4eb085d7c639c2039fc14beba83d95653e.zip
sfence before writing satp, as well as after
Diffstat (limited to 'kernel/trampoline.S')
-rw-r--r--kernel/trampoline.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/trampoline.S b/kernel/trampoline.S
index 0aaa413..7fb0b36 100644
--- a/kernel/trampoline.S
+++ b/kernel/trampoline.S
@@ -82,6 +82,7 @@ uservec:
# load the kernel page table, from p->trapframe->kernel_satp
ld t1, 0(a0)
+ sfence.vma zero, zero
csrw satp, t1
sfence.vma zero, zero
@@ -96,6 +97,7 @@ userret:
# a0: user page table, for satp.
# switch to the user page table.
+ sfence.vma zero, zero
csrw satp, a0
sfence.vma zero, zero