ia64/xen-unstable

changeset 15840:af03eea56697

[IA64] Add missing continuable destroy domain chunk

Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
author Alex Williamson <alex.williamson@hp.com>
date Thu Sep 06 12:57:13 2007 -0600 (2007-09-06)
parents 8b2e0de43b55
children c5f735271e22
files xen/arch/ia64/xen/mm.c
line diff
     1.1 --- a/xen/arch/ia64/xen/mm.c	Thu Sep 06 12:35:22 2007 -0600
     1.2 +++ b/xen/arch/ia64/xen/mm.c	Thu Sep 06 12:57:13 2007 -0600
     1.3 @@ -339,14 +339,22 @@ mm_teardown(struct domain* d)
     1.4      volatile pgd_t* pgd;
     1.5  
     1.6      if (mm->pgd == NULL)
     1.7 -        return;
     1.8 +        return 0;
     1.9  
    1.10      pgd = pgd_offset(mm, 0);
    1.11      for (i = 0; i < PTRS_PER_PGD; i++, pgd++) {
    1.12 -        if (!pgd_present(*pgd)) // acquire semantics
    1.13 +        unsigned long cur_offset = i << PGDIR_SHIFT;
    1.14 +
    1.15 +        if (mm_teardown_can_skip(d, cur_offset + PGDIR_SIZE))
    1.16              continue;
    1.17 -        mm_teardown_pgd(d, pgd, i << PGDIR_SHIFT);
    1.18 +        if (!pgd_present(*pgd)) { // acquire semantics
    1.19 +            mm_teardown_update_offset(d, cur_offset);
    1.20 +            continue;
    1.21 +        }
    1.22 +        if (mm_teardown_pgd(d, pgd, cur_offset))
    1.23 +            return -EAGAIN;
    1.24      }
    1.25 +    return 0;
    1.26  }
    1.27  
    1.28  static void