svn commit: r216455 - in stable/8/sys: amd64/amd64 i386/isa

Konstantin Belousov kib at FreeBSD.org
Wed Dec 15 15:15:42 UTC 2010


Author: kib
Date: Wed Dec 15 15:15:42 2010
New Revision: 216455
URL: http://svn.freebsd.org/changeset/base/216455

Log:
  MFC r216394:
  In fpudna()/npxdna(), mark FPU context initialized and optionally
  mark user FPU context initialized, if current context is user context.
  It was reversed in r215865, by inadequate change of this code fragment
  to a call to fpuuserinited()/npxuserinited().
  
  Approved by:	re (bz)

Modified:
  stable/8/sys/amd64/amd64/fpu.c
  stable/8/sys/i386/isa/npx.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)

Modified: stable/8/sys/amd64/amd64/fpu.c
==============================================================================
--- stable/8/sys/amd64/amd64/fpu.c	Wed Dec 15 12:46:53 2010	(r216454)
+++ stable/8/sys/amd64/amd64/fpu.c	Wed Dec 15 15:15:42 2010	(r216455)
@@ -426,7 +426,9 @@ fpudna(void)
 		fxrstor(&fpu_initialstate);
 		if (pcb->pcb_initial_fpucw != __INITIAL_FPUCW__)
 			fldcw(pcb->pcb_initial_fpucw);
-		fpuuserinited(curthread);
+		pcb->pcb_flags |= PCB_FPUINITDONE;
+		if (PCB_USER_FPU(pcb))
+			pcb->pcb_flags |= PCB_USERFPUINITDONE;
 	} else
 		fxrstor(pcb->pcb_save);
 	critical_exit();

Modified: stable/8/sys/i386/isa/npx.c
==============================================================================
--- stable/8/sys/i386/isa/npx.c	Wed Dec 15 12:46:53 2010	(r216454)
+++ stable/8/sys/i386/isa/npx.c	Wed Dec 15 15:15:42 2010	(r216455)
@@ -684,7 +684,9 @@ npxdna(void)
 		fpurstor(&npx_initialstate);
 		if (pcb->pcb_initial_npxcw != __INITIAL_NPXCW__)
 			fldcw(pcb->pcb_initial_npxcw);
-		npxuserinited(curthread);
+		pcb->pcb_flags |= PCB_NPXINITDONE;
+		if (PCB_USER_FPU(pcb))
+			pcb->pcb_flags |= PCB_NPXUSERINITDONE;
 	} else {
 		/*
 		 * The following fpurstor() may cause an IRQ13 when the


More information about the svn-src-stable mailing list