* [Qemu-devel] [PATCH for-2.0] hw/i386: fix acpi tables generation for big endian machines
@ 2014-03-20 16:40 Marcel Apfelbaum
2014-03-20 20:27 ` Michael S. Tsirkin
0 siblings, 1 reply; 2+ messages in thread
From: Marcel Apfelbaum @ 2014-03-20 16:40 UTC (permalink / raw)
To: qemu-devel; +Cc: aik, aliguori, mst
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 <marcel.a@redhat.com>
---
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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH for-2.0] hw/i386: fix acpi tables generation for big endian machines
2014-03-20 16:40 [Qemu-devel] [PATCH for-2.0] hw/i386: fix acpi tables generation for big endian machines Marcel Apfelbaum
@ 2014-03-20 20:27 ` Michael S. Tsirkin
0 siblings, 0 replies; 2+ messages in thread
From: Michael S. Tsirkin @ 2014-03-20 20:27 UTC (permalink / raw)
To: Marcel Apfelbaum; +Cc: aik, qemu-devel, aliguori
On Thu, Mar 20, 2014 at 06:40:50PM +0200, Marcel Apfelbaum wrote:
> 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 <marcel.a@redhat.com>
Applied, thanks!
> ---
> 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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-03-20 20:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-20 16:40 [Qemu-devel] [PATCH for-2.0] hw/i386: fix acpi tables generation for big endian machines Marcel Apfelbaum
2014-03-20 20:27 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).