Commit ea516b11 authored by Al Viro's avatar Al Viro
Browse files

powerpc: put the "zero usp means using parent's stack pointer" to copy_thread()



simplifies callers, at that...

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 64c2f659
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -761,6 +761,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
	} else {
		CHECK_FULL_REGS(regs);
		*childregs = *regs;
		if (usp)
			childregs->gpr[1] = usp;
		p->thread.regs = childregs;
		childregs->gpr[3] = 0;  /* Result from fork() */
@@ -1030,8 +1031,6 @@ int sys_clone(unsigned long clone_flags, unsigned long usp,
	      int __user *child_tidp, int p6,
	      struct pt_regs *regs)
{
	if (usp == 0)
		usp = regs->gpr[1];	/* stack pointer for child */
 	return do_fork(clone_flags, usp, regs, 0, parent_tidp, child_tidp);
}

@@ -1039,14 +1038,14 @@ int sys_fork(unsigned long p1, unsigned long p2, unsigned long p3,
	     unsigned long p4, unsigned long p5, unsigned long p6,
	     struct pt_regs *regs)
{
	return do_fork(SIGCHLD, regs->gpr[1], regs, 0, NULL, NULL);
	return do_fork(SIGCHLD, 0, regs, 0, NULL, NULL);
}

int sys_vfork(unsigned long p1, unsigned long p2, unsigned long p3,
	      unsigned long p4, unsigned long p5, unsigned long p6,
	      struct pt_regs *regs)
{
	return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->gpr[1],
	return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 0,
			regs, 0, NULL, NULL);
}