|
|
|
|
|
|
|
|
|
|
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 <=
|
|
|
|
|