]> xenbits.xensource.com Git - xen.git/commitdiff
hvmloader: add high memory e820 region if needed
authorDavid Vrabel <david.vrabel@citrix.com>
Tue, 15 Mar 2016 11:22:04 +0000 (12:22 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 15 Mar 2016 11:22:04 +0000 (12:22 +0100)
If the MMIO hole is large and hvmloader needs to relocate memory to
immediately above the 4 GiB boundary, the e820 presented to the guest
will not have a RAM region above 4 GiB.

e.g., a guest with 3 GiB of memory and a 2 GiB MMIO hole will only see
2 GiB.

The required e820 memory region above 4 GiB needs to be added, and not
just filled in.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
tools/firmware/hvmloader/e820.c

index bbde2be51b2b03b2e1d245fd725b6a8775d2f91c..5541b1870592890c21b442485eb3429ddb335b81 100644 (file)
@@ -99,6 +99,7 @@ void adjust_memory_map(void)
                 ((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) -
                     memory_map.map[i].addr;
         memory_map.map[i].type = E820_RAM;
+        memory_map.nr_map++;
     }
 }