summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2002-11-08 03:07:52 +0000
committerdavidxu <davidxu@FreeBSD.org>2002-11-08 03:07:52 +0000
commit8274c76b58353868c5593991de1fd05f81746087 (patch)
tree8e522f0ea741e589aff48277231ff46fc6cbb6ae
parentdff8f5c919bf65f72d98cd9eb58cd308101f1fa0 (diff)
downloadFreeBSD-src-8274c76b58353868c5593991de1fd05f81746087.zip
FreeBSD-src-8274c76b58353868c5593991de1fd05f81746087.tar.gz
adjust critical section to only wrap around vm86_bioscall().
-rw-r--r--sys/i386/i386/vm86.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/i386/i386/vm86.c b/sys/i386/i386/vm86.c
index 3ca104d..dd7624f 100644
--- a/sys/i386/i386/vm86.c
+++ b/sys/i386/i386/vm86.c
@@ -603,7 +603,6 @@ vm86_datacall(intnum, vmf, vmc)
int i, entry, retval;
mtx_lock(&vm86_lock);
- critical_enter();
for (i = 0; i < vmc->npages; i++) {
page = vtophys(vmc->pmap[i].kva & PG_FRAME);
entry = vmc->pmap[i].pte_num;
@@ -613,14 +612,15 @@ vm86_datacall(intnum, vmf, vmc)
}
vmf->vmf_trapno = intnum;
+ critical_enter();
retval = vm86_bioscall(vmf);
+ critical_exit();
for (i = 0; i < vmc->npages; i++) {
entry = vmc->pmap[i].pte_num;
pte[entry] = vmc->pmap[i].old_pte;
pmap_invalidate_page(kernel_pmap, vmc->pmap[i].kva);
}
- critical_exit();
mtx_unlock(&vm86_lock);
return (retval);
OpenPOWER on IntegriCloud