make sure use the kernel space after change ASID
after the SWITCH_TO_APP_PAGETABLE, the ASID is changed to the application ASID, but there are still some instruction before ERET, since these instruction is not use the kernel address space, it may use the application's TLB, which will cause fault, this patch can make sure that after SWITCH_TO_APP_PAGETABLE sentry is still use kernel address space which is mapped as Global. Signed-off-by: Min Le <lemin.lm@antgroup.com>
This commit is contained in:
parent
742e58b873
commit
2c849c72b9
|
@ -461,6 +461,14 @@ TEXT ·kernelExitToEl0(SB),NOSPLIT,$0
|
|||
MOVD PTRACE_PSTATE(RSV_REG_APP), R1
|
||||
WORD $0xd5184001 //MSR R1, SPSR_EL1
|
||||
|
||||
// need use kernel space address to excute below code, since
|
||||
// after SWITCH_TO_APP_PAGETABLE the ASID is changed to app's
|
||||
// ASID.
|
||||
WORD $0x10000061 // ADR R1, do_exit_to_el0
|
||||
ORR $0xffff000000000000, R1, R1
|
||||
JMP (R1)
|
||||
|
||||
do_exit_to_el0:
|
||||
// RSV_REG & RSV_REG_APP will be loaded at the end.
|
||||
REGISTERS_LOAD(RSV_REG_APP, 0)
|
||||
|
||||
|
|
Loading…
Reference in New Issue