diff mbox

[for-2.0,V2] tests/acpi-test: do not run iasl on big endian machines

Message ID 1395340808-21352-1-git-send-email-marcel.a@redhat.com
State New
Headers show

Commit Message

Marcel Apfelbaum March 20, 2014, 6:40 p.m. UTC
There is an issue with iasl on big endian machines: It
cannot disassemble acpi tables taken from little endian
machines, so we cannot check the expected tables.

Do not run iasl on those machines until this
problem is solved by the acpica community.

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
---
V1 -> V2:
 Addressed an offline tip for a much cleaner
 macro line, thanks!

 tests/acpi-test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael S. Tsirkin March 20, 2014, 8:16 p.m. UTC | #1
On Thu, Mar 20, 2014 at 08:40:08PM +0200, Marcel Apfelbaum wrote:
> There is an issue with iasl on big endian machines: It
> cannot disassemble acpi tables taken from little endian
> machines, so we cannot check the expected tables.
> 
> Do not run iasl on those machines until this
> problem is solved by the acpica community.
> 
> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>

Seems too aggressive: can't we detect the broken iasl?
E.g. won't it fail to disassemble expected AML files?
Also, won't this broken iasl generate corrupt AML
on output? If yes we should detect this at configure
time instead?

> ---
> V1 -> V2:
>  Addressed an offline tip for a much cleaner
>  macro line, thanks!
> 
>  tests/acpi-test.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/acpi-test.c b/tests/acpi-test.c
> index 249fe03..88e876f 100644
> --- a/tests/acpi-test.c
> +++ b/tests/acpi-test.c
> @@ -145,7 +145,7 @@ static uint8_t boot_sector[0x7e000] = {
>  
>  static const char *disk = "tests/acpi-test-disk.raw";
>  static const char *data_dir = "tests/acpi-test-data";
> -#ifdef CONFIG_IASL
> +#if G_BYTE_ORDER == G_LITTLE_ENDIAN && defined(CONFIG_IASL)
>  static const char *iasl = stringify(CONFIG_IASL);
>  #else
>  static const char *iasl;
> -- 
> 1.8.3.1
Paolo Bonzini March 20, 2014, 9:57 p.m. UTC | #2
Il 20/03/2014 21:16, Michael S. Tsirkin ha scritto:
> Seems too aggressive: can't we detect the broken iasl?
> E.g. won't it fail to disassemble expected AML files?

Yes.

> Also, won't this broken iasl generate corrupt AML
> on output? If yes we should detect this at configure
> time instead?

No, the output is fine.  There are patches from Debian (that I updated 
and applied to Fedora last year) that take care of fixing endianness on 
output, but no such patches for the disassembly.

On one hand, I'm fine with not running IASL at all on big-endian 
machines.  On the other hand, it will certainly cause the patches to bitrot.

Paolo
diff mbox

Patch

diff --git a/tests/acpi-test.c b/tests/acpi-test.c
index 249fe03..88e876f 100644
--- a/tests/acpi-test.c
+++ b/tests/acpi-test.c
@@ -145,7 +145,7 @@  static uint8_t boot_sector[0x7e000] = {
 
 static const char *disk = "tests/acpi-test-disk.raw";
 static const char *data_dir = "tests/acpi-test-data";
-#ifdef CONFIG_IASL
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN && defined(CONFIG_IASL)
 static const char *iasl = stringify(CONFIG_IASL);
 #else
 static const char *iasl;