summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/ipl.s
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>1998-07-27 16:51:33 +0000
committerjlemon <jlemon@FreeBSD.org>1998-07-27 16:51:33 +0000
commite2204441eadb14707e637171586f75c771f51eb8 (patch)
treeb3a573a7566519abd5b5f3d2646428d30fe34770 /sys/i386/isa/ipl.s
parentd757cde4ede5b9a44050419d6c70beb820bd8102 (diff)
downloadFreeBSD-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.s8
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
OpenPOWER on IntegriCloud