Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 May 2013 19:06:15 +0000 (UTC)
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r250785 - in stable/9/sys/amd64: amd64 ia32 include linux32
Message-ID:  <201305181906.r4IJ6F3U082798@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dchagin
Date: Sat May 18 19:06:15 2013
New Revision: 250785
URL: http://svnweb.freebsd.org/changeset/base/250785

Log:
  MFC r250423:
  
  Retire write-only PCB_GS32BIT pcb flag on amd64.

Modified:
  stable/9/sys/amd64/amd64/genassym.c
  stable/9/sys/amd64/amd64/machdep.c
  stable/9/sys/amd64/ia32/ia32_signal.c
  stable/9/sys/amd64/include/pcb.h
  stable/9/sys/amd64/linux32/linux32_machdep.c
  stable/9/sys/amd64/linux32/linux32_sysvec.c
Directory Properties:
  stable/9/   (props changed)
  stable/9/sys/   (props changed)

Modified: stable/9/sys/amd64/amd64/genassym.c
==============================================================================
--- stable/9/sys/amd64/amd64/genassym.c	Sat May 18 18:28:19 2013	(r250784)
+++ stable/9/sys/amd64/amd64/genassym.c	Sat May 18 19:06:15 2013	(r250785)
@@ -160,7 +160,6 @@ ASSYM(PCB_USERFPU, sizeof(struct pcb));
 ASSYM(PCB_SIZE, sizeof(struct pcb));
 ASSYM(PCB_FULL_IRET, PCB_FULL_IRET);
 ASSYM(PCB_DBREGS, PCB_DBREGS);
-ASSYM(PCB_GS32BIT, PCB_GS32BIT);
 ASSYM(PCB_32BIT, PCB_32BIT);
 
 ASSYM(COMMON_TSS_RSP0, offsetof(struct amd64tss, tss_rsp0));

Modified: stable/9/sys/amd64/amd64/machdep.c
==============================================================================
--- stable/9/sys/amd64/amd64/machdep.c	Sat May 18 18:28:19 2013	(r250784)
+++ stable/9/sys/amd64/amd64/machdep.c	Sat May 18 19:06:15 2013	(r250785)
@@ -938,7 +938,7 @@ exec_setregs(struct thread *td, struct i
 	
 	pcb->pcb_fsbase = 0;
 	pcb->pcb_gsbase = 0;
-	clear_pcb_flags(pcb, PCB_32BIT | PCB_GS32BIT);
+	clear_pcb_flags(pcb, PCB_32BIT);
 	pcb->pcb_initial_fpucw = __INITIAL_FPUCW__;
 	set_pcb_flags(pcb, PCB_FULL_IRET);
 

Modified: stable/9/sys/amd64/ia32/ia32_signal.c
==============================================================================
--- stable/9/sys/amd64/ia32/ia32_signal.c	Sat May 18 18:28:19 2013	(r250784)
+++ stable/9/sys/amd64/ia32/ia32_signal.c	Sat May 18 19:06:15 2013	(r250785)
@@ -1001,6 +1001,5 @@ ia32_setregs(struct thread *td, struct i
 
 	/* Return via doreti so that we can change to a different %cs */
 	set_pcb_flags(pcb, PCB_32BIT | PCB_FULL_IRET);
-	clear_pcb_flags(pcb, PCB_GS32BIT);
 	td->td_retval[1] = 0;
 }

Modified: stable/9/sys/amd64/include/pcb.h
==============================================================================
--- stable/9/sys/amd64/include/pcb.h	Sat May 18 18:28:19 2013	(r250784)
+++ stable/9/sys/amd64/include/pcb.h	Sat May 18 19:06:15 2013	(r250785)
@@ -77,7 +77,6 @@ struct pcb {
 #define	PCB_KERNFPU	0x04	/* kernel uses fpu */
 #define	PCB_FPUINITDONE	0x08	/* fpu state is initialized */
 #define	PCB_USERFPUINITDONE 0x10 /* fpu user state is initialized */
-#define	PCB_GS32BIT	0x20	/* linux gs switch */
 #define	PCB_32BIT	0x40	/* process has 32 bit context (segs etc) */
 
 	uint16_t	pcb_initial_fpucw;

Modified: stable/9/sys/amd64/linux32/linux32_machdep.c
==============================================================================
--- stable/9/sys/amd64/linux32/linux32_machdep.c	Sat May 18 18:28:19 2013	(r250784)
+++ stable/9/sys/amd64/linux32/linux32_machdep.c	Sat May 18 19:06:15 2013	(r250785)
@@ -447,7 +447,7 @@ linux_set_cloned_tls(struct thread *td, 
 		pcb->pcb_gsbase = (register_t)info.base_addr;
 /* XXXKIB	pcb->pcb_gs32sd = sd; */
 		td->td_frame->tf_gs = GSEL(GUGS32_SEL, SEL_UPL);
-		set_pcb_flags(pcb, PCB_GS32BIT | PCB_32BIT);
+		set_pcb_flags(pcb, PCB_32BIT);
 	}
 
 	return (error);
@@ -1026,7 +1026,7 @@ linux_set_thread_area(struct thread *td,
 
 	pcb = td->td_pcb;
 	pcb->pcb_gsbase = (register_t)info.base_addr;
-	set_pcb_flags(pcb, PCB_32BIT | PCB_GS32BIT);
+	set_pcb_flags(pcb, PCB_32BIT);
 	update_gdt_gsbase(td, info.base_addr);
 
 	return (0);

Modified: stable/9/sys/amd64/linux32/linux32_sysvec.c
==============================================================================
--- stable/9/sys/amd64/linux32/linux32_sysvec.c	Sat May 18 18:28:19 2013	(r250784)
+++ stable/9/sys/amd64/linux32/linux32_sysvec.c	Sat May 18 19:06:15 2013	(r250785)
@@ -867,7 +867,6 @@ exec_linux_setregs(struct thread *td, st
 
 	/* Do full restore on return so that we can change to a different %cs */
 	set_pcb_flags(pcb, PCB_32BIT | PCB_FULL_IRET);
-	clear_pcb_flags(pcb, PCB_GS32BIT);
 	td->td_retval[1] = 0;
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305181906.r4IJ6F3U082798>