summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/vm86.h
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2002-11-07 01:34:23 +0000
committerdavidxu <davidxu@FreeBSD.org>2002-11-07 01:34:23 +0000
commitb2a02ec1dcd205bfacf188ec2d9458afea64c103 (patch)
tree09661ce33c70fa2a73dd4342e573bb4624255036 /sys/i386/include/vm86.h
parentad9fbf676ccbdb941baccc124a528f24131ad54c (diff)
downloadFreeBSD-src-b2a02ec1dcd205bfacf188ec2d9458afea64c103.zip
FreeBSD-src-b2a02ec1dcd205bfacf188ec2d9458afea64c103.tar.gz
1.Fix smp race between kernel vm86 BIOS calling and userland vm86 mode code,
remove global variable in_vm86call, set vm86 calling flag in PCB flags. 2.Fix vm86 BIOS calling preempted problem by changing vm86_lock mutex type from MTX_DEF to MTX_SPIN. vm86pcb is not remembered in thread struct, when the thread calling vm86 BIOS is preempted by interrupt thread, and later switching back to the thread would cause incorrect context be loaded into CPU registers, this leads to kernel crash.
Diffstat (limited to 'sys/i386/include/vm86.h')
-rw-r--r--sys/i386/include/vm86.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/sys/i386/include/vm86.h b/sys/i386/include/vm86.h
index f20a689..041504a 100644
--- a/sys/i386/include/vm86.h
+++ b/sys/i386/include/vm86.h
@@ -145,7 +145,6 @@ struct vm86_intcall_args {
};
#ifdef _KERNEL
-extern int in_vm86call;
extern int vm86paddr;
struct thread;
OpenPOWER on IntegriCloud