diff options
author | alc <alc@FreeBSD.org> | 2010-06-11 15:49:39 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2010-06-11 15:49:39 +0000 |
commit | 6a3535c3fa18af41cdca53d39cc5cfa30c33b489 (patch) | |
tree | 550ff47684da099980515a2516e246ffd5339741 /sys/i386/xen/pmap.c | |
parent | 36542ba7ce7973f7b9df1cef37c89721a3f722a8 (diff) | |
download | FreeBSD-src-6a3535c3fa18af41cdca53d39cc5cfa30c33b489.zip FreeBSD-src-6a3535c3fa18af41cdca53d39cc5cfa30c33b489.tar.gz |
Relax one of the new assertions in pmap_enter() a little. Specifically,
allow pmap_enter() to be performed on an unmanaged page that doesn't have
VPO_BUSY set. Having VPO_BUSY set really only matters for managed pages.
(See, for example, pmap_remove_write().)
Diffstat (limited to 'sys/i386/xen/pmap.c')
-rw-r--r-- | sys/i386/xen/pmap.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/i386/xen/pmap.c b/sys/i386/xen/pmap.c index d4e02d9..188b1b0 100644 --- a/sys/i386/xen/pmap.c +++ b/sys/i386/xen/pmap.c @@ -2673,7 +2673,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t m, KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS, ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)", va)); - KASSERT((m->oflags & VPO_BUSY) != 0, + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || + (m->oflags & VPO_BUSY) != 0, ("pmap_enter: page %p is not busy", m)); mpte = NULL; |