ChangeSet 1.1370, 2005/04/22 17:42:55+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx
Add a headroom check to MMUEXT_REASSIGN_PAGE.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
mm.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff -Nru a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c 2005-04-22 13:04:28 -04:00
+++ b/xen/arch/x86/mm.c 2005-04-22 13:04:28 -04:00
@@ -1686,11 +1686,19 @@
spin_lock(&d->page_alloc_lock);
}
- /* A domain shouldn't have PGC_allocated pages when it is dying. */
+ /*
+ * Check that 'e' will accept the page and has reservation
+ * headroom. Also, a domain mustn't have PGC_allocated pages when
+ * it is dying.
+ */
+ ASSERT(e->tot_pages <= e->max_pages);
if ( unlikely(test_bit(DF_DYING, &e->d_flags)) ||
+ unlikely(e->tot_pages == e->max_pages) ||
unlikely(IS_XEN_HEAP_FRAME(page)) )
{
- MEM_LOG("Reassign page is Xen heap, or dest dom is dying.");
+ MEM_LOG("Transferee has no reservation headroom (%d,%d), or "
+ "page is in Xen heap (%p), or dom is dying (%d).\n",
+ e->tot_pages, e->max_pages, op.mfn, e->d_flags);
okay = 0;
goto reassign_fail;
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|