[lkml]   [2011]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH] ACPICA: Fix wrongly mapped acpi table header when overriding via initrd
    From: Michael Chang <>

    Fix the overriding ACPI table header do not override the existing ACPI
    header thus the existing one is still in use. This caused a discrepency
    of header and body, which would introdce a serios side effect that when
    overriding DSDT, system might have error with "Unable to load the System
    Description Tables" due to DSDT table verified failed.

    Most field in ACPI table is static, but the length field is dyamically
    changed and corresponds the new assembled *.aml size. We reserve the
    ACPI data region using the overridden table size but attemps to map it
    with existing ACPI table size introduced by above discrepency. It
    would lead to remap fail during verifying DSDT able if length difference
    cross a page boundary.

    Signed-off-by: Michael Chang <>
    drivers/acpi/acpica/tbutils.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
    index df85afe..2e797d9 100644
    --- a/drivers/acpi/acpica/tbutils.c
    +++ b/drivers/acpi/acpica/tbutils.c
    @@ -511,9 +511,9 @@ acpi_tb_install_table(acpi_physical_address address,
    ACPI_CAST_PTR(void, address)));
    sizeof(struct acpi_table_header));
    + address = tmp_addr;
    mapped_table = acpi_os_map_memory(address,
    sizeof(struct acpi_table_header));
    - address = tmp_addr;
    table_to_install = mapped_table;

     \ /
      Last update: 2011-08-30 13:33    [W:0.036 / U:11.220 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site