]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
Allow tools to map arbitrarily large machphys_mfn_list on 32bit dom0
authorGianni Tedesco <gianni.tedesco@citrix.com>
Mon, 14 Mar 2011 17:14:16 +0000 (17:14 +0000)
committerGianni Tedesco <gianni.tedesco@citrix.com>
Mon, 14 Mar 2011 17:14:16 +0000 (17:14 +0000)
This permits suspend/resume to work with 32bit dom0/tools when system
memory extends beyond 160GB (and up to 1TB).

AFAICT the limit to MACH2PHYS_COMPAT_NR_ENTRIES is redundant since
that refers to a limit in 32bit guest compat mappings under 64bit
hypervisors, not userspace where there may be gigabytes of useful
virtual space available for this.

Suggested-by: Ian Campbell <Ian.Campbell@eu.citrix.com>
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
xen-unstable changeset:   23038:39f5947b1576
xen-unstable date:        Mon Mar 14 17:13:15 2011 +0000

xen/arch/x86/x86_64/compat/mm.c

index f567aabab8b1cd9df84c93e07a02657c856bdd5b..2c050997b687f5fa4c9306986d4fddf5c425264e 100644 (file)
@@ -161,9 +161,7 @@ int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
         if ( copy_from_guest(&xmml, arg, 1) )
             return -EFAULT;
 
-        limit = (unsigned long)(compat_machine_to_phys_mapping +
-            min_t(unsigned long, max_page,
-                  MACH2PHYS_COMPAT_NR_ENTRIES(current->domain)));
+        limit = (unsigned long)(compat_machine_to_phys_mapping + max_page);
         if ( limit > RDWR_COMPAT_MPT_VIRT_END )
             limit = RDWR_COMPAT_MPT_VIRT_END;
         for ( i = 0, v = RDWR_COMPAT_MPT_VIRT_START, last_mfn = 0;