microblaze: Fix sys_rt_sigreturn_wrapper
Do not save return registers before rt_sigreturn is called. _user_exception(syscall handler) already setup return address that's why it is removed from rt_sigreturn_wrapper. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
@@ -458,14 +458,8 @@ C_ENTRY(sys_execve):
|
|||||||
addik r8, r1, PTO; /* add user context as 4th arg */
|
addik r8, r1, PTO; /* add user context as 4th arg */
|
||||||
|
|
||||||
C_ENTRY(sys_rt_sigreturn_wrapper):
|
C_ENTRY(sys_rt_sigreturn_wrapper):
|
||||||
swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
|
brid sys_rt_sigreturn /* Do real work */
|
||||||
swi r4, r1, PTO+PT_R4;
|
|
||||||
brlid r15, sys_rt_sigreturn /* Do real work */
|
|
||||||
addik r5, r1, PTO; /* add user context as 1st arg */
|
addik r5, r1, PTO; /* add user context as 1st arg */
|
||||||
lwi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
|
|
||||||
lwi r4, r1, PTO+PT_R4;
|
|
||||||
bri ret_from_trap /* fall through will not work here due to align */
|
|
||||||
nop;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HW EXCEPTION rutine start
|
* HW EXCEPTION rutine start
|
||||||
|
Reference in New Issue
Block a user