diff options
author | Robert Morris <[email protected]> | 2019-09-03 16:29:48 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-09-03 16:29:48 -0400 |
commit | 25e113138d677eacb8f2ce872ca7ff7596ae44e0 (patch) | |
tree | c565f732e0113cb8f5fbb54ecb36e379690d6485 /kernel/trampoline.S | |
parent | 9b9e2dd0f24428659d1f931009dd6429a9f5f1ac (diff) | |
download | xv6-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.S | 8 |
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. |