|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-changelog
[Xen-changelog] [xen-unstable] [IA64] Add missing continuable	destroy do
 
# 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
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-changelog] [xen-unstable] [IA64] Add missing continuable	destroy domain chunk,
Xen patchbot-unstable <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |