diff options
author | davidxu <davidxu@FreeBSD.org> | 2002-11-08 03:07:52 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2002-11-08 03:07:52 +0000 |
commit | 8274c76b58353868c5593991de1fd05f81746087 (patch) | |
tree | 8e522f0ea741e589aff48277231ff46fc6cbb6ae | |
parent | dff8f5c919bf65f72d98cd9eb58cd308101f1fa0 (diff) | |
download | FreeBSD-src-8274c76b58353868c5593991de1fd05f81746087.zip FreeBSD-src-8274c76b58353868c5593991de1fd05f81746087.tar.gz |
adjust critical section to only wrap around vm86_bioscall().
-rw-r--r-- | sys/i386/i386/vm86.c | 4 |
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); |