diff options
-rw-r--r-- | arch/metag/kernel/process.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/metag/kernel/process.c b/arch/metag/kernel/process.c index 483dff986a23..7f546183a0f0 100644 --- a/arch/metag/kernel/process.c +++ b/arch/metag/kernel/process.c | |||
@@ -174,8 +174,11 @@ void show_regs(struct pt_regs *regs) | |||
174 | show_trace(NULL, (unsigned long *)regs->ctx.AX[0].U0, regs); | 174 | show_trace(NULL, (unsigned long *)regs->ctx.AX[0].U0, regs); |
175 | } | 175 | } |
176 | 176 | ||
177 | /* | ||
178 | * Copy architecture-specific thread state | ||
179 | */ | ||
177 | int copy_thread(unsigned long clone_flags, unsigned long usp, | 180 | int copy_thread(unsigned long clone_flags, unsigned long usp, |
178 | unsigned long arg, struct task_struct *tsk) | 181 | unsigned long kthread_arg, struct task_struct *tsk) |
179 | { | 182 | { |
180 | struct pt_regs *childregs = task_pt_regs(tsk); | 183 | struct pt_regs *childregs = task_pt_regs(tsk); |
181 | void *kernel_context = ((void *) childregs + | 184 | void *kernel_context = ((void *) childregs + |
@@ -202,12 +205,13 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, | |||
202 | global_base = __core_reg_get(A1GbP); | 205 | global_base = __core_reg_get(A1GbP); |
203 | childregs->ctx.AX[0].U1 = (unsigned long) global_base; | 206 | childregs->ctx.AX[0].U1 = (unsigned long) global_base; |
204 | childregs->ctx.AX[0].U0 = (unsigned long) kernel_context; | 207 | childregs->ctx.AX[0].U0 = (unsigned long) kernel_context; |
205 | /* Set D1Ar1=arg and D1RtP=usp (fn) */ | 208 | /* Set D1Ar1=kthread_arg and D1RtP=usp (fn) */ |
206 | childregs->ctx.DX[4].U1 = usp; | 209 | childregs->ctx.DX[4].U1 = usp; |
207 | childregs->ctx.DX[3].U1 = arg; | 210 | childregs->ctx.DX[3].U1 = kthread_arg; |
208 | tsk->thread.int_depth = 2; | 211 | tsk->thread.int_depth = 2; |
209 | return 0; | 212 | return 0; |
210 | } | 213 | } |
214 | |||
211 | /* | 215 | /* |
212 | * Get a pointer to where the new child's register block should have | 216 | * Get a pointer to where the new child's register block should have |
213 | * been pushed. | 217 | * been pushed. |