summaryrefslogtreecommitdiffstats
path: root/arch/microblaze
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2010-08-06 10:36:02 +0200
committerMichal Simek <monstr@monstr.eu>2010-10-21 15:51:27 +1000
commit791d0a169b912220d58e0ce4564d7bf1e68146a8 (patch)
tree56d44913c6c07134f4ee8d35c1511d63168b3dad /arch/microblaze
parent06d1973490199d38a65029101199e04004fbe8f3 (diff)
downloadop-kernel-dev-791d0a169b912220d58e0ce4564d7bf1e68146a8.zip
op-kernel-dev-791d0a169b912220d58e0ce4564d7bf1e68146a8.tar.gz
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')
-rw-r--r--arch/microblaze/kernel/entry.S8
1 files changed, 1 insertions, 7 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S
index 304882e..ab4f1e1 100644
--- a/arch/microblaze/kernel/entry.S
+++ b/arch/microblaze/kernel/entry.S
@@ -458,14 +458,8 @@ C_ENTRY(sys_execve):
addik r8, r1, PTO; /* add user context as 4th arg */
C_ENTRY(sys_rt_sigreturn_wrapper):
- swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
- swi r4, r1, PTO+PT_R4;
- brlid r15, sys_rt_sigreturn /* Do real work */
+ brid sys_rt_sigreturn /* Do real work */
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
OpenPOWER on IntegriCloud