[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] acpi unit-test: resolved iasl crash
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH] acpi unit-test: resolved iasl crash |
Date: |
Mon, 6 Jan 2014 13:43:09 +0200 |
On Sun, Dec 29, 2013 at 02:32:50PM +0200, Marcel Apfelbaum wrote:
> It seems that iasl has an issue when disassembles
> some ACPI tables using the command line:
> iasl -e DSDT -e SSDT -d HPET
> I opened a bug on iasl project:
> https://github.com/acpica/acpica/issues/20
>
> Modified the iasl command line to "iasl -d HPET"
> until the problem is solved. The command line
> remained the same for DSDT and SSDT tables.
>
> Reported-by:Michael S. Tsirkin <address@hidden>
space needed after :
> Signed-off-by: Marcel Apfelbaum <address@hidden>
> ---
> tests/acpi-test.c | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/tests/acpi-test.c b/tests/acpi-test.c
> index 2d32b69..26d2e26 100644
> --- a/tests/acpi-test.c
> +++ b/tests/acpi-test.c
> @@ -403,7 +403,7 @@ static void dump_aml_files(test_data *data, bool rebuild)
> }
> }
>
> -static void load_asl(GArray *sdts, AcpiSdtTable *sdt)
> +static void load_asl(GArray *sdts, AcpiSdtTable *sdt, bool referenceDsdt)
> {
> AcpiSdtTable *temp;
> GError *error = NULL;
> @@ -419,9 +419,11 @@ static void load_asl(GArray *sdts, AcpiSdtTable *sdt)
>
> /* build command line */
> g_string_append_printf(command_line, " -p %s ", sdt->asl_file);
> - for (i = 0; i < 2; ++i) { /* reference DSDT and SSDT */
> - temp = &g_array_index(sdts, AcpiSdtTable, i);
> - g_string_append_printf(command_line, "-e %s ", temp->aml_file);
> + if (referenceDsdt) {
> + for (i = 0; i < 2; ++i) { /* reference DSDT and SSDT */
> + temp = &g_array_index(sdts, AcpiSdtTable, i);
> + g_string_append_printf(command_line, "-e %s ", temp->aml_file);
> + }
> }
> g_string_append_printf(command_line, "-d %s", sdt->aml_file);
>
> @@ -510,14 +512,14 @@ static void test_acpi_asl(test_data *data)
> dump_aml_files(data, false);
> for (i = 0; i < data->ssdt_tables->len; ++i) {
> GString *asl, *exp_asl;
> -
> + bool referenceDsdt = (i < 2); /* only for DSDT and SSDT */
Please don't use camelCase for variables.
Can we check the table signature instead of looking at the index?
> sdt = &g_array_index(data->ssdt_tables, AcpiSdtTable, i);
> exp_sdt = &g_array_index(exp_data.ssdt_tables, AcpiSdtTable, i);
>
> - load_asl(data->ssdt_tables, sdt);
> + load_asl(data->ssdt_tables, sdt, referenceDsdt);
> asl = normalize_asl(sdt->asl);
>
> - load_asl(exp_data.ssdt_tables, exp_sdt);
> + load_asl(exp_data.ssdt_tables, exp_sdt, referenceDsdt);
> exp_asl = normalize_asl(exp_sdt->asl);
>
> g_assert(!g_strcmp0(asl->str, exp_asl->str));
> --
> 1.8.3.1
- Re: [Qemu-devel] [PATCH] acpi unit-test: resolved iasl crash,
Michael S. Tsirkin <=