Author: tijl
Date: Tue Jul 20 12:36:36 2010
New Revision: 210294
URL: http://svn.freebsd.org/changeset/base/210294

Log:
  Store fsbase and gsbase in the right fields of the mcontext. They were
  switched.
  
  PR:           i386/148344
  Approved by:  kib (mentor)
  MFC after:    1 week

Modified:
  head/sys/i386/i386/machdep.c
  head/sys/pc98/pc98/machdep.c

Modified: head/sys/i386/i386/machdep.c
==============================================================================
--- head/sys/i386/i386/machdep.c        Tue Jul 20 11:46:45 2010        
(r210293)
+++ head/sys/i386/i386/machdep.c        Tue Jul 20 12:36:36 2010        
(r210294)
@@ -645,10 +645,10 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, 
        /*
         * Unconditionally fill the fsbase and gsbase into the mcontext.
         */
-       sdp = &td->td_pcb->pcb_gsd;
+       sdp = &td->td_pcb->pcb_fsd;
        sf.sf_uc.uc_mcontext.mc_fsbase = sdp->sd_hibase << 24 |
            sdp->sd_lobase;
-       sdp = &td->td_pcb->pcb_fsd;
+       sdp = &td->td_pcb->pcb_gsd;
        sf.sf_uc.uc_mcontext.mc_gsbase = sdp->sd_hibase << 24 |
            sdp->sd_lobase;
 
@@ -3255,9 +3255,9 @@ get_mcontext(struct thread *td, mcontext
         * mcontext after mc_fpstate.
         */
        get_fpcontext(td, mcp);
-       sdp = &td->td_pcb->pcb_gsd;
-       mcp->mc_fsbase = sdp->sd_hibase << 24 | sdp->sd_lobase;
        sdp = &td->td_pcb->pcb_fsd;
+       mcp->mc_fsbase = sdp->sd_hibase << 24 | sdp->sd_lobase;
+       sdp = &td->td_pcb->pcb_gsd;
        mcp->mc_gsbase = sdp->sd_hibase << 24 | sdp->sd_lobase;
 
        return (0);

Modified: head/sys/pc98/pc98/machdep.c
==============================================================================
--- head/sys/pc98/pc98/machdep.c        Tue Jul 20 11:46:45 2010        
(r210293)
+++ head/sys/pc98/pc98/machdep.c        Tue Jul 20 12:36:36 2010        
(r210294)
@@ -580,10 +580,10 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, 
        /*
         * Unconditionally fill the fsbase and gsbase into the mcontext.
         */
-       sdp = &td->td_pcb->pcb_gsd;
+       sdp = &td->td_pcb->pcb_fsd;
        sf.sf_uc.uc_mcontext.mc_fsbase = sdp->sd_hibase << 24 |
            sdp->sd_lobase;
-       sdp = &td->td_pcb->pcb_fsd;
+       sdp = &td->td_pcb->pcb_gsd;
        sf.sf_uc.uc_mcontext.mc_gsbase = sdp->sd_hibase << 24 |
            sdp->sd_lobase;
 
@@ -2583,9 +2583,9 @@ get_mcontext(struct thread *td, mcontext
         * mcontext after mc_fpstate.
         */
        get_fpcontext(td, mcp);
-       sdp = &td->td_pcb->pcb_gsd;
-       mcp->mc_fsbase = sdp->sd_hibase << 24 | sdp->sd_lobase;
        sdp = &td->td_pcb->pcb_fsd;
+       mcp->mc_fsbase = sdp->sd_hibase << 24 | sdp->sd_lobase;
+       sdp = &td->td_pcb->pcb_gsd;
        mcp->mc_gsbase = sdp->sd_hibase << 24 | sdp->sd_lobase;
 
        return (0);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to