diff -r a83ac0806d6b tools/libxc/xc_linux_save.c --- a/tools/libxc/xc_linux_save.c Fri Jul 15 13:39:50 2005 +++ b/tools/libxc/xc_linux_save.c Sun Jul 17 12:43:42 2005 @@ -464,7 +464,7 @@ goto out; } - nr_pfns = info.max_memkb >> (PAGE_SHIFT - 10); + nr_pfns = (info.max_memkb + (1 << (PAGE_SHIFT-10)) - 1) >> (PAGE_SHIFT - 10); /* cheesy sanity check */ if ( nr_pfns > 1024*1024 ) diff -r a83ac0806d6b xen/common/dom0_ops.c --- a/xen/common/dom0_ops.c Fri Jul 15 13:39:50 2005 +++ b/xen/common/dom0_ops.c Sun Jul 17 12:43:42 2005 @@ -515,7 +515,7 @@ d = find_domain_by_id(op->u.setdomainmaxmem.domain); if ( d != NULL ) { - d->max_pages = op->u.setdomainmaxmem.max_memkb >> (PAGE_SHIFT-10); + d->max_pages = (op->u.setdomainmaxmem.max_memkb + (1 << (PAGE_SHIFT-10)) - 1) >> (PAGE_SHIFT-10); put_domain(d); ret = 0; }