diff options
author | jlemon <jlemon@FreeBSD.org> | 1998-07-27 16:51:33 +0000 |
---|---|---|
committer | jlemon <jlemon@FreeBSD.org> | 1998-07-27 16:51:33 +0000 |
commit | e2204441eadb14707e637171586f75c771f51eb8 (patch) | |
tree | b3a573a7566519abd5b5f3d2646428d30fe34770 /sys/i386/isa/ipl.s | |
parent | d757cde4ede5b9a44050419d6c70beb820bd8102 (diff) | |
download | FreeBSD-src-e2204441eadb14707e637171586f75c771f51eb8.zip FreeBSD-src-e2204441eadb14707e637171586f75c771f51eb8.tar.gz |
Extend cpl workaround so that it applies when we are returning to
user-mode as well as vm86 mode.
Diffstat (limited to 'sys/i386/isa/ipl.s')
-rw-r--r-- | sys/i386/isa/ipl.s | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/i386/isa/ipl.s b/sys/i386/isa/ipl.s index 9b3979c..55cb847 100644 --- a/sys/i386/isa/ipl.s +++ b/sys/i386/isa/ipl.s @@ -36,7 +36,7 @@ * * @(#)ipl.s * - * $Id: ipl.s,v 1.20 1998/03/03 22:56:29 tegge Exp $ + * $Id: ipl.s,v 1.21 1998/03/23 19:52:59 jlemon Exp $ */ @@ -169,9 +169,11 @@ doreti_exit: * When the cpl problem is solved, this code can disappear. */ ICPL_LOCK - cmpl $0,_cpl + cmpl $0,_cpl /* cpl == 0, skip it */ je 1f - testl $PSL_VM,TF_EFLAGS(%esp) + testl $PSL_VM,TF_EFLAGS(%esp) /* going to VM86 mode? */ + jne doreti_stop + testb $SEL_RPL_MASK,TRAPF_CS_OFF(%esp) /* to user mode? */ je 1f doreti_stop: movl $0,_cpl |