mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 04:30:52 +07:00
microblaze: Fix _user_exception function
Saving some instructions. Clear VMS bit if kernel comes from kernel space. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
287503fabd
commit
25f6e59657
@ -352,6 +352,7 @@ C_ENTRY(_user_exception):
|
|||||||
swi r0, r1, PTO + PT_MODE; /* Was in user-mode. */
|
swi r0, r1, PTO + PT_MODE; /* Was in user-mode. */
|
||||||
lwi r11, r0, TOPHYS(PER_CPU(ENTRY_SP));
|
lwi r11, r0, TOPHYS(PER_CPU(ENTRY_SP));
|
||||||
swi r11, r1, PTO+PT_R1; /* Store user SP. */
|
swi r11, r1, PTO+PT_R1; /* Store user SP. */
|
||||||
|
clear_ums;
|
||||||
2: lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE));
|
2: lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE));
|
||||||
/* Save away the syscall number. */
|
/* Save away the syscall number. */
|
||||||
swi r12, r1, PTO+PT_R0;
|
swi r12, r1, PTO+PT_R0;
|
||||||
@ -363,10 +364,8 @@ C_ENTRY(_user_exception):
|
|||||||
* register should point to the location where
|
* register should point to the location where
|
||||||
* the called function should return. [note that MAKE_SYS_CALL uses label 1] */
|
* the called function should return. [note that MAKE_SYS_CALL uses label 1] */
|
||||||
|
|
||||||
# Step into virtual mode.
|
/* Step into virtual mode */
|
||||||
set_vms;
|
rtbd r0, 3f
|
||||||
addik r11, r0, 3f
|
|
||||||
rtid r11, 0
|
|
||||||
nop
|
nop
|
||||||
3:
|
3:
|
||||||
lwi r11, CURRENT_TASK, TS_THREAD_INFO /* get thread info */
|
lwi r11, CURRENT_TASK, TS_THREAD_INFO /* get thread info */
|
||||||
|
Loading…
Reference in New Issue
Block a user