diff options
Diffstat (limited to 'arch/mips/kernel/process.c')
-rw-r--r-- | arch/mips/kernel/process.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index a11c6f9fdd5e..a33d2ef8f273 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c | |||
@@ -156,7 +156,8 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, | |||
156 | *childregs = *regs; | 156 | *childregs = *regs; |
157 | childregs->regs[7] = 0; /* Clear error flag */ | 157 | childregs->regs[7] = 0; /* Clear error flag */ |
158 | childregs->regs[2] = 0; /* Child gets zero as return value */ | 158 | childregs->regs[2] = 0; /* Child gets zero as return value */ |
159 | childregs->regs[29] = usp; | 159 | if (usp) |
160 | childregs->regs[29] = usp; | ||
160 | ti->addr_limit = USER_DS; | 161 | ti->addr_limit = USER_DS; |
161 | 162 | ||
162 | p->thread.reg29 = (unsigned long) childregs; | 163 | p->thread.reg29 = (unsigned long) childregs; |