patch-2.1.97 linux/arch/ppc/kernel/ptrace.c
Next file: linux/arch/ppc/kernel/residual.c
Previous file: linux/arch/ppc/kernel/prom.c
Back to the patch index
Back to the overall index
- Lines: 29
- Date:
Tue Apr 14 17:33:58 1998
- Orig file:
v2.1.96/linux/arch/ppc/kernel/ptrace.c
- Orig date:
Mon Jan 12 15:18:13 1998
diff -u --recursive --new-file v2.1.96/linux/arch/ppc/kernel/ptrace.c linux/arch/ppc/kernel/ptrace.c
@@ -390,8 +390,14 @@
tmp = get_reg(child, addr);
}
else if (addr >= PT_FPR0 && addr <= PT_FPSCR) {
+#ifdef __SMP__
+ if (child->tss.regs->msr & MSR_FP )
+ smp_giveup_fpu(child);
+#else
+ /* only current can be last task to use math on SMP */
if (last_task_used_math == child)
giveup_fpu();
+#endif
tmp = ((long *)child->tss.fpr)[addr - PT_FPR0];
}
else
@@ -423,8 +429,13 @@
goto out;
}
if (addr >= PT_FPR0 && addr < PT_FPR0 + 64) {
+#ifndef __SMP__
+ if (child->tss.regs->msr & MSR_FP )
+ smp_giveup_fpu(child);
+#else
if (last_task_used_math == child)
giveup_fpu();
+#endif
((long *)child->tss.fpr)[addr - PT_FPR0] = data;
ret = 0;
goto out;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov