From: Yann Droneaud This patch check that rsdt_info->pointer is not NULL before trying to unmap ACPI tables, which can happen if acpi_tb_get_rsdt_address() failed. In my case, with ipmi_si_intf module and acpi=ht|off parameter, the call failed because acpi_gbl_table_flags is not initialised, so the address.pointer_type is not setup correctly, leading to message like: May 16 11:18:29 localhost kernel: ACPI-0166: *** Error: Invalid address flags 8 and rsdt_info->pointer equal to NULL leading to the Oops. Cc: Corey Minyard Signed-off-by: Andrew Morton --- drivers/acpi/tables/tbxfroot.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN drivers/acpi/tables/tbxfroot.c~ipmi-and-acpi=offht-acpi-get-firmware-failurepatch drivers/acpi/tables/tbxfroot.c --- 25/drivers/acpi/tables/tbxfroot.c~ipmi-and-acpi=offht-acpi-get-firmware-failurepatch 2005-05-17 00:43:22.000000000 -0700 +++ 25-akpm/drivers/acpi/tables/tbxfroot.c 2005-05-17 00:43:56.000000000 -0700 @@ -331,8 +331,9 @@ acpi_get_firmware_table ( cleanup: - acpi_os_unmap_memory (rsdt_info->pointer, - (acpi_size) rsdt_info->pointer->length); + if (rsdt_info->pointer) + acpi_os_unmap_memory (rsdt_info->pointer, + (acpi_size) rsdt_info->pointer->length); ACPI_MEM_FREE (rsdt_info); if (header) { _