mips: take the "zero newsp means inherit the parent's one" to copy_thread()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
974fdb3c20
Коммит
64b3122df4
|
@ -289,8 +289,6 @@ _sys32_clone(nabi_no_regargs struct pt_regs regs)
|
|||
|
||||
clone_flags = regs.regs[4];
|
||||
newsp = regs.regs[5];
|
||||
if (!newsp)
|
||||
newsp = regs.regs[29];
|
||||
parent_tidptr = (int __user *) regs.regs[6];
|
||||
|
||||
/* Use __dummy4 instead of getting it off the stack, so that
|
||||
|
|
|
@ -156,7 +156,8 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
|
|||
*childregs = *regs;
|
||||
childregs->regs[7] = 0; /* Clear error flag */
|
||||
childregs->regs[2] = 0; /* Child gets zero as return value */
|
||||
childregs->regs[29] = usp;
|
||||
if (usp)
|
||||
childregs->regs[29] = usp;
|
||||
ti->addr_limit = USER_DS;
|
||||
|
||||
p->thread.reg29 = (unsigned long) childregs;
|
||||
|
|
|
@ -86,7 +86,7 @@ save_static_function(sys_fork);
|
|||
static int __used noinline
|
||||
_sys_fork(nabi_no_regargs struct pt_regs regs)
|
||||
{
|
||||
return do_fork(SIGCHLD, regs.regs[29], 0, NULL, NULL);
|
||||
return do_fork(SIGCHLD, 0, 0, NULL, NULL);
|
||||
}
|
||||
|
||||
save_static_function(sys_clone);
|
||||
|
@ -99,8 +99,6 @@ _sys_clone(nabi_no_regargs struct pt_regs regs)
|
|||
|
||||
clone_flags = regs.regs[4];
|
||||
newsp = regs.regs[5];
|
||||
if (!newsp)
|
||||
newsp = regs.regs[29];
|
||||
parent_tidptr = (int __user *) regs.regs[6];
|
||||
#ifdef CONFIG_32BIT
|
||||
/* We need to fetch the fifth argument off the stack. */
|
||||
|
|
Загрузка…
Ссылка в новой задаче