diff options
author | attilio <attilio@FreeBSD.org> | 2013-03-03 01:26:11 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2013-03-03 01:26:11 +0000 |
commit | d924385016be447df3186832464c1a47f33c733e (patch) | |
tree | ee954a1582633bb4c1a26d768567cd04e2eee198 /sys/i386 | |
parent | a345907061eb599f277c79a9ca00a3515a5854c8 (diff) | |
download | FreeBSD-src-d924385016be447df3186832464c1a47f33c733e.zip FreeBSD-src-d924385016be447df3186832464c1a47f33c733e.tar.gz |
Fixup XEN pmap to cope with removal of left/right iterators from
pages.
Sponsored by: EMC / Isilon storage division
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/xen/pmap.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/i386/xen/pmap.c b/sys/i386/xen/pmap.c index 74a3be7..532c870 100644 --- a/sys/i386/xen/pmap.c +++ b/sys/i386/xen/pmap.c @@ -1335,7 +1335,8 @@ pmap_free_zero_pages(vm_page_t free) while (free != NULL) { m = free; - free = m->right; + free = (void *)m->object; + m->object = NULL; vm_page_free_zero(m); } } @@ -1393,7 +1394,7 @@ _pmap_unwire_ptp(pmap_t pmap, vm_page_t m, vm_page_t *free) * Put page on a list so that it is released after * *ALL* TLB shootdown is done */ - m->right = *free; + m->object = (void *)*free; *free = m; } @@ -2090,7 +2091,7 @@ out: } if (m_pc == NULL && pv_vafree != 0 && free != NULL) { m_pc = free; - free = m_pc->right; + free = (void *)m_pc->object; /* Recycle a freed page table page. */ m_pc->wire_count = 1; atomic_add_int(&cnt.v_wire_count, 1); |