summaryrefslogtreecommitdiff
path: root/kernel/trampoline.S
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-09-03 16:29:48 -0400
committerRobert Morris <[email protected]>2019-09-03 16:29:48 -0400
commit25e113138d677eacb8f2ce872ca7ff7596ae44e0 (patch)
treec565f732e0113cb8f5fbb54ecb36e379690d6485 /kernel/trampoline.S
parent9b9e2dd0f24428659d1f931009dd6429a9f5f1ac (diff)
downloadxv6-labs-25e113138d677eacb8f2ce872ca7ff7596ae44e0.tar.gz
xv6-labs-25e113138d677eacb8f2ce872ca7ff7596ae44e0.tar.bz2
xv6-labs-25e113138d677eacb8f2ce872ca7ff7596ae44e0.zip
sfence.vma in trampoline as well
Diffstat (limited to 'kernel/trampoline.S')
-rw-r--r--kernel/trampoline.S8
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/trampoline.S b/kernel/trampoline.S
index 24499d9..f47c3ff 100644
--- a/kernel/trampoline.S
+++ b/kernel/trampoline.S
@@ -75,8 +75,8 @@ uservec:
# restore kernel page table from p->tf->kernel_satp
ld t1, 0(a0)
- sfence.vma zero, zero
csrw satp, t1
+ sfence.vma zero, zero
# a0 is no longer valid, since the kernel page
# table does not specially map p->td.
@@ -89,12 +89,12 @@ userret:
# userret(TRAPFRAME, pagetable)
# switch from kernel to user.
# usertrapret() calls here.
- # a0: TRAPFRAME, in user page table
+ # a0: TRAPFRAME, in user page table
# a1: user page table, for satp
- # switch to the user page table.
- sfence.vma zero, zero
+ # switch to the user page table.
csrw satp, a1
+ sfence.vma zero, zero
# put the saved user a0 in sscratch, so we
# can swap it with our a0 (TRAPFRAME) in the last step.