diff options
author | Michal Simek <monstr@monstr.eu> | 2010-08-06 04:36:02 -0400 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2010-10-21 01:51:27 -0400 |
commit | 791d0a169b912220d58e0ce4564d7bf1e68146a8 (patch) | |
tree | 56d44913c6c07134f4ee8d35c1511d63168b3dad /arch/microblaze/kernel | |
parent | 06d1973490199d38a65029101199e04004fbe8f3 (diff) |
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>
Diffstat (limited to 'arch/microblaze/kernel')
-rw-r--r-- | arch/microblaze/kernel/entry.S | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index 304882e56459..ab4f1e159308 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S | |||
@@ -458,14 +458,8 @@ C_ENTRY(sys_execve): | |||
458 | addik r8, r1, PTO; /* add user context as 4th arg */ | 458 | addik r8, r1, PTO; /* add user context as 4th arg */ |
459 | 459 | ||
460 | C_ENTRY(sys_rt_sigreturn_wrapper): | 460 | C_ENTRY(sys_rt_sigreturn_wrapper): |
461 | swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */ | 461 | brid sys_rt_sigreturn /* Do real work */ |
462 | swi r4, r1, PTO+PT_R4; | ||
463 | brlid r15, sys_rt_sigreturn /* Do real work */ | ||
464 | addik r5, r1, PTO; /* add user context as 1st arg */ | 462 | addik r5, r1, PTO; /* add user context as 1st arg */ |
465 | lwi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */ | ||
466 | lwi r4, r1, PTO+PT_R4; | ||
467 | bri ret_from_trap /* fall through will not work here due to align */ | ||
468 | nop; | ||
469 | 463 | ||
470 | /* | 464 | /* |
471 | * HW EXCEPTION rutine start | 465 | * HW EXCEPTION rutine start |