Flush icache before returning to user.
This commit is contained in:
parent
8522c2f4cd
commit
6011a6a943
1 changed files with 1 additions and 0 deletions
|
@ -86,6 +86,7 @@ pub fn trap_return() -> ! {
|
||||||
}
|
}
|
||||||
let restore_va = __restore as usize - __alltraps as usize + TRAMPOLINE;
|
let restore_va = __restore as usize - __alltraps as usize + TRAMPOLINE;
|
||||||
unsafe {
|
unsafe {
|
||||||
|
llvm_asm!("fence.i" :::: "volatile");
|
||||||
llvm_asm!("jr $0" :: "r"(restore_va), "{a0}"(trap_cx_ptr), "{a1}"(user_satp) :: "volatile");
|
llvm_asm!("jr $0" :: "r"(restore_va), "{a0}"(trap_cx_ptr), "{a1}"(user_satp) :: "volatile");
|
||||||
}
|
}
|
||||||
panic!("Unreachable in back_to_user!");
|
panic!("Unreachable in back_to_user!");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue