Loading arch/sh/kernel/cpu/sh5/fpu.c +7 −9 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ static union sh_fpu_union init_fpuregs = { } }; inline void fpsave(struct sh_fpu_hard_struct *fpregs) void save_fpu(struct task_struct *tsk, struct pt_regs *regs) { asm volatile("fst.p %0, (0*8), fp0\n\t" "fst.p %0, (1*8), fp2\n\t" Loading Loading @@ -73,11 +73,10 @@ inline void fpsave(struct sh_fpu_hard_struct *fpregs) "fgetscr fr63\n\t" "fst.s %0, (32*8), fr63\n\t" : /* no output */ : "r" (fpregs) : "r" (&tsk->thread.fpu.hard) : "memory"); } static inline void fpload(struct sh_fpu_hard_struct *fpregs) { Loading Loading @@ -153,10 +152,10 @@ do_fpu_state_restore(unsigned long ex, struct pt_regs *regs) return; enable_fpu(); if (last_task_used_math != NULL) { if (last_task_used_math != NULL) /* Other processes fpu state, save away */ fpsave(&last_task_used_math->thread.fpu.hard); } save_fpu(last_task_used_math, regs); last_task_used_math = current; if (used_math()) { fpload(¤t->thread.fpu.hard); Loading @@ -167,4 +166,3 @@ do_fpu_state_restore(unsigned long ex, struct pt_regs *regs) } disable_fpu(); } arch/sh/kernel/process_64.c +2 −2 Original line number Diff line number Diff line Loading @@ -480,7 +480,7 @@ int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu) if (fpvalid) { if (current == last_task_used_math) { enable_fpu(); fpsave(&tsk->thread.fpu.hard); save_fpu(tsk, regs); disable_fpu(); last_task_used_math = 0; regs->sr |= SR_FD; Loading @@ -507,7 +507,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, #ifdef CONFIG_SH_FPU if(last_task_used_math == current) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading arch/sh/kernel/ptrace_64.c +2 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ get_fpu_long(struct task_struct *task, unsigned long addr) if (last_task_used_math == task) { enable_fpu(); fpsave(&task->thread.fpu.hard); save_fpu(task, regs); disable_fpu(); last_task_used_math = 0; regs->sr |= SR_FD; Loading Loading @@ -111,7 +111,7 @@ put_fpu_long(struct task_struct *task, unsigned long addr, unsigned long data) set_stopped_child_used_math(task); } else if (last_task_used_math == task) { enable_fpu(); fpsave(&task->thread.fpu.hard); save_fpu(task, regs); disable_fpu(); last_task_used_math = 0; regs->sr |= SR_FD; Loading arch/sh/kernel/signal_64.c +1 −1 Original line number Diff line number Diff line Loading @@ -212,7 +212,7 @@ setup_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc) if (current == last_task_used_math) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading arch/sh/kernel/traps_64.c +2 −2 Original line number Diff line number Diff line Loading @@ -618,7 +618,7 @@ static int misaligned_fpu_load(struct pt_regs *regs, indexed by register number. */ if (last_task_used_math == current) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading Loading @@ -691,7 +691,7 @@ static int misaligned_fpu_store(struct pt_regs *regs, indexed by register number. */ if (last_task_used_math == current) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading Loading
arch/sh/kernel/cpu/sh5/fpu.c +7 −9 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ static union sh_fpu_union init_fpuregs = { } }; inline void fpsave(struct sh_fpu_hard_struct *fpregs) void save_fpu(struct task_struct *tsk, struct pt_regs *regs) { asm volatile("fst.p %0, (0*8), fp0\n\t" "fst.p %0, (1*8), fp2\n\t" Loading Loading @@ -73,11 +73,10 @@ inline void fpsave(struct sh_fpu_hard_struct *fpregs) "fgetscr fr63\n\t" "fst.s %0, (32*8), fr63\n\t" : /* no output */ : "r" (fpregs) : "r" (&tsk->thread.fpu.hard) : "memory"); } static inline void fpload(struct sh_fpu_hard_struct *fpregs) { Loading Loading @@ -153,10 +152,10 @@ do_fpu_state_restore(unsigned long ex, struct pt_regs *regs) return; enable_fpu(); if (last_task_used_math != NULL) { if (last_task_used_math != NULL) /* Other processes fpu state, save away */ fpsave(&last_task_used_math->thread.fpu.hard); } save_fpu(last_task_used_math, regs); last_task_used_math = current; if (used_math()) { fpload(¤t->thread.fpu.hard); Loading @@ -167,4 +166,3 @@ do_fpu_state_restore(unsigned long ex, struct pt_regs *regs) } disable_fpu(); }
arch/sh/kernel/process_64.c +2 −2 Original line number Diff line number Diff line Loading @@ -480,7 +480,7 @@ int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu) if (fpvalid) { if (current == last_task_used_math) { enable_fpu(); fpsave(&tsk->thread.fpu.hard); save_fpu(tsk, regs); disable_fpu(); last_task_used_math = 0; regs->sr |= SR_FD; Loading @@ -507,7 +507,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, #ifdef CONFIG_SH_FPU if(last_task_used_math == current) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading
arch/sh/kernel/ptrace_64.c +2 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ get_fpu_long(struct task_struct *task, unsigned long addr) if (last_task_used_math == task) { enable_fpu(); fpsave(&task->thread.fpu.hard); save_fpu(task, regs); disable_fpu(); last_task_used_math = 0; regs->sr |= SR_FD; Loading Loading @@ -111,7 +111,7 @@ put_fpu_long(struct task_struct *task, unsigned long addr, unsigned long data) set_stopped_child_used_math(task); } else if (last_task_used_math == task) { enable_fpu(); fpsave(&task->thread.fpu.hard); save_fpu(task, regs); disable_fpu(); last_task_used_math = 0; regs->sr |= SR_FD; Loading
arch/sh/kernel/signal_64.c +1 −1 Original line number Diff line number Diff line Loading @@ -212,7 +212,7 @@ setup_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc) if (current == last_task_used_math) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading
arch/sh/kernel/traps_64.c +2 −2 Original line number Diff line number Diff line Loading @@ -618,7 +618,7 @@ static int misaligned_fpu_load(struct pt_regs *regs, indexed by register number. */ if (last_task_used_math == current) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading Loading @@ -691,7 +691,7 @@ static int misaligned_fpu_store(struct pt_regs *regs, indexed by register number. */ if (last_task_used_math == current) { enable_fpu(); fpsave(¤t->thread.fpu.hard); save_fpu(current, regs); disable_fpu(); last_task_used_math = NULL; regs->sr |= SR_FD; Loading