[PATCH kvm-unit-tests] x86: map bottom 2G 1:1 into page tables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Right now only addresses up to the highest RAM memory address are
are mapped 1:1 into the 32-bit page tables, but this also excludes
ACPI-reserved areas that are higher than the highest RAM memory
address.  Depending on the memory layout, this may prevent the
tests from accessing the ACPI tables after setup_vm.  Unconditionally
including the bottom 2G of memory fixes that.  We do rely on the
ACPI tables being in the first 2GB of memory, which is not necessarily
true on bare metal; fixing that requires adding calls to something like
Linux's kmap/kunmap.

Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
---
 lib/x86/vm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/x86/vm.c b/lib/x86/vm.c
index edbbe82..2bc2a39 100644
--- a/lib/x86/vm.c
+++ b/lib/x86/vm.c
@@ -154,8 +154,7 @@ void *setup_mmu(phys_addr_t end_of_memory)
     if (end_of_memory > (1ul << 31))
 	    end_of_memory = (1ul << 31);
 
-    /* 0 - 2G memory, 2G-3G valloc area, 3G-4G mmio */
-    setup_mmu_range(cr3, 0, end_of_memory);
+    setup_mmu_range(cr3, 0, (2ul << 30));
     setup_mmu_range(cr3, 3ul << 30, (1ul << 30));
     init_alloc_vpage((void*)(3ul << 30));
 #endif
-- 
2.26.2




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux