diff usr/src/uts/intel/ia32/os/archdep.c @ 4503:8cf697a3acff

6493689 Jvm crash: curthread set by kernel incorrect
author sudheer
date Wed, 20 Jun 2007 03:26:40 -0700
parents 5903aece022d
children af6e7cd796cc
line wrap: on
line diff
--- a/usr/src/uts/intel/ia32/os/archdep.c	Tue Jun 19 22:41:58 2007 -0700
+++ b/usr/src/uts/intel/ia32/os/archdep.c	Wed Jun 20 03:26:40 2007 -0700
@@ -442,7 +442,7 @@
 	grp[REG_GSBASE] = pcb->pcb_gsbase;
 	if (thisthread)
 		kpreempt_disable();
-	if (pcb->pcb_flags & RUPDATE_PENDING) {
+	if (pcb->pcb_rupdate == 1) {
 		grp[REG_DS] = pcb->pcb_ds;
 		grp[REG_ES] = pcb->pcb_es;
 		grp[REG_FS] = pcb->pcb_fs;
@@ -478,7 +478,7 @@
 
 	if (thisthread)
 		kpreempt_disable();
-	if (pcb->pcb_flags & RUPDATE_PENDING) {
+	if (pcb->pcb_rupdate == 1) {
 		grp[GS] = (uint16_t)pcb->pcb_gs;
 		grp[FS] = (uint16_t)pcb->pcb_fs;
 		grp[DS] = (uint16_t)pcb->pcb_ds;
@@ -712,7 +712,7 @@
 		/*
 		 * Ensure that we go out via update_sregs
 		 */
-		pcb->pcb_flags |= RUPDATE_PENDING;
+		pcb->pcb_rupdate = 1;
 		lwptot(lwp)->t_post_sys = 1;
 		if (thisthread)
 			kpreempt_enable();
@@ -757,7 +757,7 @@
 		/*
 		 * Ensure that we go out via update_sregs
 		 */
-		pcb->pcb_flags |= RUPDATE_PENDING;
+		pcb->pcb_rupdate = 1;
 		lwptot(lwp)->t_post_sys = 1;
 		if (thisthread)
 			kpreempt_enable();