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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to