|
@@ -745,7 +745,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
|
|
|
/* Copy registers */
|
|
|
sp -= sizeof(struct pt_regs);
|
|
|
childregs = (struct pt_regs *) sp;
|
|
|
- if (!regs) {
|
|
|
+ if (unlikely(p->flags & PF_KTHREAD)) {
|
|
|
struct thread_info *ti = (void *)task_stack_page(p);
|
|
|
memset(childregs, 0, sizeof(struct pt_regs));
|
|
|
childregs->gpr[1] = sp + sizeof(struct pt_regs);
|