From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQg2L-0006x4-U2 for qemu-devel@nongnu.org; Thu, 20 Mar 2014 12:41:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WQg2F-0005dN-U8 for qemu-devel@nongnu.org; Thu, 20 Mar 2014 12:41:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:61434) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQg2F-0005cx-MC for qemu-devel@nongnu.org; Thu, 20 Mar 2014 12:41:39 -0400 From: Marcel Apfelbaum Date: Thu, 20 Mar 2014 18:40:50 +0200 Message-Id: <1395333650-10230-1-git-send-email-marcel.a@redhat.com> Subject: [Qemu-devel] [PATCH for-2.0] hw/i386: fix acpi tables generation for big endian machines List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aik@ozlabs.ru, aliguori@amazon.com, mst@redhat.com The acpi tables are not corrected loaded into guest's memory for big-endian hosts because of a linker-loader field swapped incorrectly. Fixed that. Signed-off-by: Marcel Apfelbaum --- Note that the acpi test still fails because of an iasl issue, I will send a patch separately that disables disassembly validation for big endian machines until we'll have an iasl fix. hw/i386/bios-linker-loader.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/i386/bios-linker-loader.c b/hw/i386/bios-linker-loader.c index aa56184..0e1cfb7 100644 --- a/hw/i386/bios-linker-loader.c +++ b/hw/i386/bios-linker-loader.c @@ -109,9 +109,8 @@ void bios_linker_loader_alloc(GArray *linker, strncpy(entry.alloc.file, file, sizeof entry.alloc.file - 1); entry.command = cpu_to_le32(BIOS_LINKER_LOADER_COMMAND_ALLOCATE); entry.alloc.align = cpu_to_le32(alloc_align); - entry.alloc.zone = cpu_to_le32(alloc_fseg ? - BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG : - BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH); + entry.alloc.zone = alloc_fseg ? BIOS_LINKER_LOADER_ALLOC_ZONE_FSEG : + BIOS_LINKER_LOADER_ALLOC_ZONE_HIGH; /* Alloc entries must come first, so prepend them */ g_array_prepend_vals(linker, &entry, sizeof entry); -- 1.8.3.1