void flush_thread(void)
{
-#if defined(CONFIG_SH_FPU)
+#if defined(CONFIG_CPU_SH4)
struct task_struct *tsk = current;
struct pt_regs *regs = (struct pt_regs *)
((unsigned long)tsk->thread_info
{
int fpvalid = 0;
-#if defined(CONFIG_SH_FPU)
+#if defined(CONFIG_CPU_SH4)
struct task_struct *tsk = current;
fpvalid = tsk->used_math;
{
int fpvalid = 0;
-#if defined(CONFIG_SH_FPU)
+#if defined(CONFIG_CPU_SH4)
fpvalid = tsk->used_math;
if (fpvalid) {
struct pt_regs *regs = (struct pt_regs *)
struct task_struct *p, struct pt_regs *regs)
{
struct pt_regs *childregs;
-#if defined(CONFIG_SH_FPU)
+#if defined(CONFIG_CPU_SH4)
struct task_struct *tsk = current;
unlazy_fpu(tsk, regs);
childregs->gbr = childregs->regs[0];
}
childregs->regs[0] = 0; /* Set return value for child */
+ p->set_child_tid = p->clear_child_tid = NULL;
p->thread.sp = (unsigned long) childregs;
p->thread.pc = (unsigned long) ret_from_fork;
*/
struct task_struct *__switch_to(struct task_struct *prev, struct task_struct *next)
{
-#if defined(CONFIG_SH_FPU)
+#if defined(CONFIG_CPU_SH4)
struct pt_regs *regs = (struct pt_regs *)
((unsigned long)prev->thread_info
+ THREAD_SIZE - sizeof(struct pt_regs)
(char __user * __user *)uargv,
(char __user * __user *)uenvp,
®s);
- if (error == 0) {
- task_lock(current);
+ if (error == 0)
current->ptrace &= ~PT_DTRACE;
- task_unlock(current);
- }
putname(filename);
out:
return error;