Browse Source

parisc: switch to saner kernel_execve() semantics

ACKed-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 12 years ago
parent
commit
363806ddd2
3 changed files with 4 additions and 20 deletions
  1. 1 0
      arch/parisc/Kconfig
  2. 0 1
      arch/parisc/include/asm/unistd.h
  3. 3 19
      arch/parisc/kernel/entry.S

+ 1 - 0
arch/parisc/Kconfig

@@ -23,6 +23,7 @@ config PARISC
 	select HAVE_MOD_ARCH_SPECIFIC
 	select MODULES_USE_ELF_RELA
 	select GENERIC_KERNEL_THREAD
+	select GENERIC_KERNEL_EXECVE
 
 	help
 	  The PA-RISC microprocessor is designed by Hewlett-Packard and used

+ 0 - 1
arch/parisc/include/asm/unistd.h

@@ -995,7 +995,6 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)	\
 #define __ARCH_WANT_SYS_RT_SIGACTION
 #define __ARCH_WANT_SYS_RT_SIGSUSPEND
 #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
-#define __ARCH_WANT_KERNEL_EXECVE
 #define __ARCH_WANT_SYS_EXECVE
 
 #endif /* __ASSEMBLY__ */

+ 3 - 19
arch/parisc/kernel/entry.S

@@ -727,26 +727,10 @@ ENTRY(ret_from_kernel_thread)
 	LDREG	TASK_PT_GR26(%r1), %r1
 	ble	0(%sr7, %r1)
 	copy	%r31, %r2
-
-#ifdef CONFIG_64BIT
-	ldo	-16(%r30),%r29		/* Reference param save area */
-	loadgp				/* Thread could have been in a module */
-#endif
-#ifndef CONFIG_64BIT
-	b	sys_exit
-#else
-	load32	sys_exit, %r1
-	bv	%r0(%r1)
-#endif
-	ldi	0, %r26
+	b	finish_child_return
+	nop
 ENDPROC(ret_from_kernel_thread)
 
-ENTRY(ret_from_kernel_execve)
-	mfctl   %cr30, %r1
-	b	syscall_exit	/* forward */
-	ldo	THREAD_SZ_ALGN+FRAME_SIZE(%r1), %r30
-ENDPROC(ret_from_kernel_execve)
-
 
 	/*
 	 * struct task_struct *_switch_to(struct task_struct *prev,
@@ -1721,7 +1705,7 @@ ENDPROC(sys_fork_wrapper)
 ENTRY(child_return)
 	BL	schedule_tail, %r2
 	nop
-
+finish_child_return:
 	LDREG	TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1
 	ldo	TASK_REGS(%r1),%r1	 /* get pt regs */