patch-2.1.43 linux/arch/sparc64/kernel/signal.c

Next file: linux/arch/sparc64/kernel/signal32.c
Previous file: linux/arch/sparc64/kernel/rtrap.S
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.42/linux/arch/sparc64/kernel/signal.c linux/arch/sparc64/kernel/signal.c
@@ -1,4 +1,4 @@
-/*  $Id: signal.c,v 1.4 1997/05/27 06:28:05 davem Exp $
+/*  $Id: signal.c,v 1.6 1997/05/29 12:44:48 jj Exp $
  *  arch/sparc64/kernel/signal.c
  *
  *  Copyright (C) 1991, 1992  Linus Torvalds
@@ -193,13 +193,17 @@
 {
 #ifdef __SMP__
 	if (current->flags & PF_USEDFPU) {
-		fpsave(&current->tss.float_regs[0], &current->tss.fsr);
+		fprs_write(FPRS_FEF);
+		fpsave((unsigned long *)&current->tss.float_regs[0],
+		       &current->tss.fsr);
 		regs->tstate &= ~(TSTATE_PEF);
 		current->flags &= ~(PF_USEDFPU);
 	}
 #else
 	if (current == last_task_used_math) {
-		fpsave((unsigned long *)&current->tss.float_regs[0], &current->tss.fsr);
+		fprs_write(FPRS_FEF);
+		fpsave((unsigned long *)&current->tss.float_regs[0],
+		       &current->tss.fsr);
 		last_task_used_math = 0;
 		regs->tstate &= ~(TSTATE_PEF);
 	}

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov