summaryrefslogtreecommitdiff
path: root/sys/arch/i386/isa/pccons.c
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1998-07-09 18:22:26 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1998-07-09 18:22:26 +0000
commit9eb028107f09b6d8ac0b7cc5d8484e3d4ec305bd (patch)
tree29f6ea98b555af6a0cfef0649deed642f3b3fb2d /sys/arch/i386/isa/pccons.c
parent468a6f3f59475078b14e116d6e69d30cf08dd119 (diff)
never set PSL_IOPL at high securelevel (except the one xf86 case, controlled by the aperture driver; problem noted by csapuntz
Diffstat (limited to 'sys/arch/i386/isa/pccons.c')
-rw-r--r--sys/arch/i386/isa/pccons.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/arch/i386/isa/pccons.c b/sys/arch/i386/isa/pccons.c
index 0bdf2e7446e..f66652a2358 100644
--- a/sys/arch/i386/isa/pccons.c
+++ b/sys/arch/i386/isa/pccons.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pccons.c,v 1.40 1998/03/16 09:12:39 downsj Exp $ */
+/* $OpenBSD: pccons.c,v 1.41 1998/07/09 18:22:25 deraadt Exp $ */
/* $NetBSD: pccons.c,v 1.99.4.1 1996/06/04 20:03:53 cgd Exp $ */
/*-
@@ -1919,7 +1919,8 @@ pc_xmode_on()
#ifdef COMPAT_10
/* This is done by i386_iopl(3) now. */
fp = curproc->p_md.md_regs;
- fp->tf_eflags |= PSL_IOPL;
+ if (securelevel <= 0)
+ fp->tf_eflags |= PSL_IOPL;
#endif
}
@@ -1940,6 +1941,7 @@ pc_xmode_off()
screen_restore(0);
fp = curproc->p_md.md_regs;
- fp->tf_eflags &= ~PSL_IOPL;
+ if (securelevel <= 0)
+ fp->tf_eflags &= ~PSL_IOPL;
}
#endif /* XSERVER */