diff options
| author | David Greenman <dg@FreeBSD.org> | 1994-02-10 03:03:44 +0000 |
|---|---|---|
| committer | David Greenman <dg@FreeBSD.org> | 1994-02-10 03:03:44 +0000 |
| commit | 43ef94a93a9199820620fffb93140be4bdb50f7b (patch) | |
| tree | ba37a3128d5edad8b470b47ee9b29209d0f83b45 /sys/amd64 | |
| parent | d4ef5cfd2eec83b91ba8d6f25d40a40c89477114 (diff) | |
Patch from John Dyson:
a pv chain was being traversed while interrupts were
fully enabled in pmap_remove_all ... this is bogus, and
has been fixed in pmap.c. (sorry for adding the splimp)
Notes
svn path=/head/; revision=1139
Diffstat (limited to 'sys/amd64')
| -rw-r--r-- | sys/amd64/amd64/pmap.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index c06f668bae0c..ccc8956cc6e3 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $Id: pmap.c,v 1.16 1994/01/31 23:47:27 davidg Exp $ + * $Id: pmap.c,v 1.17 1994/02/08 03:07:58 davidg Exp $ */ /* @@ -990,8 +990,8 @@ pmap_remove_all(pa) pv = pa_to_pvh(pa); m = PHYS_TO_VM_PAGE(pa); + s = splimp(); while (pv->pv_pmap != NULL) { - s = splhigh(); pmap = pv->pv_pmap; ptp = get_pt_entry(pmap); va = i386_btop(pv->pv_va); @@ -1017,8 +1017,8 @@ pmap_remove_all(pa) pv->pv_pmap = NULL; } - splx(s); } + splx(s); tlbflush(); } |
