浏览代码

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>
Michal Simek 15 年之前
父节点
当前提交
791d0a169b
共有 1 个文件被更改,包括 1 次插入7 次删除
  1. 1 7
      arch/microblaze/kernel/entry.S

+ 1 - 7
arch/microblaze/kernel/entry.S

@@ -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 */
-	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 */
 	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