[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] Add missing continuable destroy domain chunk



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1189105033 21600
# Node ID af03eea56697163d3a02cd45372fe4ddf3ec008a
# Parent  8b2e0de43b55e97063141f0da35721349230ca50
[IA64] Add missing continuable destroy domain chunk

Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>
---
 xen/arch/ia64/xen/mm.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff -r 8b2e0de43b55 -r af03eea56697 xen/arch/ia64/xen/mm.c
--- a/xen/arch/ia64/xen/mm.c    Thu Sep 06 12:35:22 2007 -0600
+++ b/xen/arch/ia64/xen/mm.c    Thu Sep 06 12:57:13 2007 -0600
@@ -339,14 +339,22 @@ mm_teardown(struct domain* d)
     volatile pgd_t* pgd;
 
     if (mm->pgd == NULL)
-        return;
+        return 0;
 
     pgd = pgd_offset(mm, 0);
     for (i = 0; i < PTRS_PER_PGD; i++, pgd++) {
-        if (!pgd_present(*pgd)) // acquire semantics
+        unsigned long cur_offset = i << PGDIR_SHIFT;
+
+        if (mm_teardown_can_skip(d, cur_offset + PGDIR_SIZE))
             continue;
-        mm_teardown_pgd(d, pgd, i << PGDIR_SHIFT);
-    }
+        if (!pgd_present(*pgd)) { // acquire semantics
+            mm_teardown_update_offset(d, cur_offset);
+            continue;
+        }
+        if (mm_teardown_pgd(d, pgd, cur_offset))
+            return -EAGAIN;
+    }
+    return 0;
 }
 
 static void

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.