|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/3] tools/libxl: Correctly aligned buffer for ACPI tables
The pointer resulting from libxl__malloc() has no explicit alignment.
As an implementation detail, it has 16-byte alignment.
When this buffer is used by libacpi aligning ACPI tables to greater
than 16 does not work correctly. This causes the FACS to not be
64-byte aligned when the ACPI tables are copied into guest memory.
Align the ACPI tables buffer to a page, to match the alignment
inside guest memory. The buffer is already one page too large,
presumably intended for this purpose originally.
Fixes: 14c0d328da2b ("libxl/acpi: Build ACPI tables for HVMlite guests")
Signed-off-by: Kevin Stefanov <kevin.stefanov@xxxxxxxxxx>
---
CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CC: Ian Jackson <iwj@xxxxxxxxxxxxxx>
CC: Wei Liu <wl@xxxxxxx>
CC: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
tools/libs/light/libxl_x86_acpi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/libs/light/libxl_x86_acpi.c
b/tools/libs/light/libxl_x86_acpi.c
index 3eca1c7a9f..0a82e7cacd 100644
--- a/tools/libs/light/libxl_x86_acpi.c
+++ b/tools/libs/light/libxl_x86_acpi.c
@@ -193,6 +193,7 @@ int libxl__dom_load_acpi(libxl__gc *gc,
* Set up allocator memory.
* Start next to acpi_info page to avoid fracturing e820.
*/
+ acpi_pages = (void *)ROUNDUP((unsigned long)acpi_pages,
libxl_ctxt.page_shift);
libxl_ctxt.alloc_base_paddr = ACPI_INFO_PHYSICAL_ADDRESS +
libxl_ctxt.page_size;
libxl_ctxt.alloc_base_vaddr = libxl_ctxt.alloc_currp =
--
2.25.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |