diff options
author | Frans Kaashoek <[email protected]> | 2019-07-17 05:53:47 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2019-07-17 05:53:47 -0400 |
commit | b924e44f06c9c0882a2cffe6c9215b12c5aee2e6 (patch) | |
tree | b1204b01142d7a5b41988b87a4c06b0aabe8b5c9 /kernel/trampoline.S | |
parent | ce53416f4970ebb137c8e66dc75488cfefaf084d (diff) | |
parent | ebc39372096280a4a5957d3e3836c859e5d78a79 (diff) | |
download | xv6-labs-b924e44f06c9c0882a2cffe6c9215b12c5aee2e6.tar.gz xv6-labs-b924e44f06c9c0882a2cffe6c9215b12c5aee2e6.tar.bz2 xv6-labs-b924e44f06c9c0882a2cffe6c9215b12c5aee2e6.zip |
Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv
Diffstat (limited to 'kernel/trampoline.S')
-rw-r--r-- | kernel/trampoline.S | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/trampoline.S b/kernel/trampoline.S index dd4eb02..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 @@ -120,7 +121,7 @@ trampin: # restore kernel stack pointer from p->tf->kernel_sp ld sp, 8(a0) - # make tp hold the current hartid, from p->tf->hartid + # make tp hold the current hartid, from p->tf->kernel_hartid ld tp, 32(a0) # remember the address of usertrap(), p->tf->kernel_trap @@ -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 |