diff mbox series

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

Message ID 20200626071859.6827-1-pbonzini@redhat.com (mailing list archive)
State New, archived
Headers show
Series [kvm-unit-tests] x86: map bottom 2G 1:1 into page tables | expand

Commit Message

Paolo Bonzini June 26, 2020, 7:18 a.m. UTC
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@redhat.com>
---
 lib/x86/vm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
diff mbox series

Patch

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