From owner-cvs-all Wed Nov 6 17:36:18 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4048B37B401; Wed, 6 Nov 2002 17:36:17 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0006143E3B; Wed, 6 Nov 2002 17:36:16 -0800 (PST) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id gA71YNmV045907; Wed, 6 Nov 2002 17:34:23 -0800 (PST) (envelope-from davidxu@repoman.freebsd.org) Received: (from davidxu@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id gA71YNn0045906; Wed, 6 Nov 2002 17:34:23 -0800 (PST) Message-Id: <200211070134.gA71YNn0045906@repoman.freebsd.org> From: David Xu Date: Wed, 6 Nov 2002 17:34:23 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/i386 exception.s genassym.c trap.c vm86.c vm86bios.s src/sys/i386/include pcb.h vm86.h X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG davidxu 2002/11/06 17:34:23 PST Modified files: sys/i386/i386 exception.s genassym.c trap.c vm86.c vm86bios.s sys/i386/include pcb.h vm86.h Log: 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. Revision Changes Path 1.99 +3 -2 src/sys/i386/i386/exception.s 1.131 +1 -0 src/sys/i386/i386/genassym.c 1.237 +5 -7 src/sys/i386/i386/trap.c 1.49 +6 -5 src/sys/i386/i386/vm86.c 1.29 +1 -6 src/sys/i386/i386/vm86bios.s 1.49 +2 -0 src/sys/i386/include/pcb.h 1.17 +0 -1 src/sys/i386/include/vm86.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message