patch-1.3.22 linux/arch/alpha/kernel/process.c

Next file: linux/arch/alpha/kernel/ptrace.c
Previous file: linux/arch/alpha/kernel/lca.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.21/linux/arch/alpha/kernel/process.c linux/arch/alpha/kernel/process.c
@@ -91,9 +91,7 @@
  */
 int alpha_fork(struct switch_stack * swstack)
 {
-	return do_fork(COPYVM | SIGCHLD,
-		rdusp(),
-		(struct pt_regs *) (swstack+1));
+	return do_fork(SIGCHLD, rdusp(), (struct pt_regs *) (swstack+1));
 }
 
 extern void ret_from_sys_call(void);
@@ -169,17 +167,11 @@
  * This doesn't actually work correctly like this: we need to do the
  * same stack setups that fork() does first.
  */
-asmlinkage int sys_clone(unsigned long a0, unsigned long a1, unsigned long a2,
+asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp, unsigned long a2,
 	unsigned long a3, unsigned long a4, unsigned long a5,
 	struct pt_regs regs)
 {
-	unsigned long clone_flags = a0;
-	unsigned long newsp;
-
-	newsp = rdusp();
-	if (newsp == a1 || !a1)
-		clone_flags |= COPYVM;
-	else
-		newsp = a1;	
+	if (!newsp)
+		newsp = rdusp();
 	return do_fork(clone_flags, newsp, &regs);
 }

FUNET's LINUX-ADM group, [email protected]
TCL-scripts by Sam Shen, [email protected] with Sam's (original) version
of this