From: Yann Droneaud <ydroneaud@mandriva.com>

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 <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 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) {
_