[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 |