diff options
| author | Robert Morris <rtm@csail.mit.edu> | 2019-07-16 17:02:21 -0400 |
|---|---|---|
| committer | Robert Morris <rtm@csail.mit.edu> | 2019-07-16 17:02:21 -0400 |
| commit | ebc39372096280a4a5957d3e3836c859e5d78a79 (patch) | |
| tree | 8df08ba410ac0f829b120f76e896bfe3658ddb96 /kernel/trampoline.S | |
| parent | 6bbc2b2245c5b006824eb42ef33d5b296158a693 (diff) | |
| download | xv6-labs-2022-ebc39372096280a4a5957d3e3836c859e5d78a79.tar.xz xv6-labs-2022-ebc39372096280a4a5957d3e3836c859e5d78a79.zip | |
conservatively call sfence.vma before every satp load.
Diffstat (limited to 'kernel/trampoline.S')
| -rw-r--r-- | kernel/trampoline.S | 4 |
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 |
