Author: nyan
Date: Sun Oct 31 08:02:47 2010
New Revision: 214589
URL: http://svn.freebsd.org/changeset/base/214589

Log:
  MFC: revision 208632
  
    Clarify a potential issue in get_fpcontext() use.

Modified:
  stable/8/sys/pc98/pc98/machdep.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)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/pc98/pc98/machdep.c
==============================================================================
--- stable/8/sys/pc98/pc98/machdep.c    Sun Oct 31 07:57:05 2010        
(r214588)
+++ stable/8/sys/pc98/pc98/machdep.c    Sun Oct 31 08:02:47 2010        
(r214589)
@@ -561,6 +561,13 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, 
        sf.sf_uc.uc_mcontext.mc_gs = rgs();
        bcopy(regs, &sf.sf_uc.uc_mcontext.mc_fs, sizeof(*regs));
        sf.sf_uc.uc_mcontext.mc_len = sizeof(sf.sf_uc.uc_mcontext); /* magic */
+
+       /*
+        * The get_fpcontext() call must be placed before assignments
+        * to mc_fsbase and mc_gsbase due to the alignment-override
+        * code in get_fpcontext() that possibly clobbers 12 bytes of
+        * mcontext after mc_fpstate.
+        */
        get_fpcontext(td, &sf.sf_uc.uc_mcontext);
        fpstate_drop(td);
        /*
@@ -2453,6 +2460,13 @@ get_mcontext(struct thread *td, mcontext
        mcp->mc_esp = tp->tf_esp;
        mcp->mc_ss = tp->tf_ss;
        mcp->mc_len = sizeof(*mcp);
+
+       /*
+        * The get_fpcontext() call must be placed before assignments
+        * to mc_fsbase and mc_gsbase due to the alignment-override
+        * code in get_fpcontext() that possibly clobbers 12 bytes of
+        * mcontext after mc_fpstate.
+        */
        get_fpcontext(td, mcp);
        sdp = &td->td_pcb->pcb_fsd;
        mcp->mc_fsbase = sdp->sd_hibase << 24 | sdp->sd_lobase;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to