Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/arch/i386/i386/locore.S,v rcsdiff: /ftp/cvs/cvsroot/src/sys/arch/i386/i386/locore.S,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.48.8.6 retrieving revision 1.54 diff -u -p -r1.48.8.6 -r1.54 --- src/sys/arch/i386/i386/locore.S 2007/11/21 21:53:16 1.48.8.6 +++ src/sys/arch/i386/i386/locore.S 2007/11/10 20:06:24 1.54 @@ -1,4 +1,4 @@ -/* $NetBSD: locore.S,v 1.48.8.6 2007/11/21 21:53:16 joerg Exp $ */ +/* $NetBSD: locore.S,v 1.54 2007/11/10 20:06:24 ad Exp $ */ /* * Copyright-o-rama! @@ -111,6 +111,7 @@ */ #include "opt_compat_oldboot.h" +#include "opt_cputype.h" #include "opt_ddb.h" #include "opt_realmem.h" #include "opt_vm86.h" @@ -766,21 +767,21 @@ ENTRY(cpu_switchto) testl $LW_SYSTEM,L_FLAG(%edi) jnz 4f + /* Is this process using RAS (restartable atomic sequences)? */ + movl L_PROC(%edi),%eax + cmpl $0,P_RASLIST(%eax) + jne 5f + /* Restore thread-private %fs/%gs descriptors. */ - movl PCB_FSD(%ebx), %eax - movl PCB_FSD+4(%ebx), %edx + movl L_MD_FSD(%edi), %eax + movl L_MD_FSD+4(%edi), %edx movl %eax, (GUFS_SEL*8)(%ecx) movl %edx, (GUFS_SEL*8+4)(%ecx) - movl PCB_GSD(%ebx), %eax - movl PCB_GSD+4(%ebx), %edx + movl L_MD_GSD(%edi), %eax + movl L_MD_GSD+4(%edi), %edx movl %eax, (GUGS_SEL*8)(%ecx) movl %edx, (GUGS_SEL*8+4)(%ecx) - /* Is this process using RAS (restartable atomic sequences)? */ - movl L_PROC(%edi),%eax - cmpl $0,P_RASLIST(%eax) - jne 5f - /* * Restore cr0 (including FPU state). Raise the IPL to IPL_IPI. * FPU IPIs can alter the LWP's saved cr0. Dropping the priority