[PATCH 2.6.12.4] ACPI oops during ipmi_si driver init

From: Peter Martuccelli
Date: Fri Aug 12 2005 - 14:49:58 EST



Hello Len,

Stumbled into this problem working on the ipmi_si driver. When the
ipmi_si driver initialization fails the acpi_tb_get_table
call, after rsdt_info has been allocated, acpi_get_firmware_table()
will oops trying to reference off rsdt_info->pointer in the cleanup
code. The following patch resolves the problem. I noticed this
problem on six different systems, all with slightly different stack
traces, but they all fail in the same manner.

Patch applies cleanly to 2.6.12.4. Tested at various sites and on
various systems, no additional problems detected.

Signed-off-by: peterm@xxxxxxxxxx


Regards,

Peter

--- linux-2.6.9/drivers/acpi/tables/tbxfroot.c.orig 2005-08-11 23:44:01.000000000 -0400
+++ linux-2.6.9/drivers/acpi/tables/tbxfroot.c 2005-08-11 23:52:57.000000000 -0400
@@ -293,9 +293,12 @@ acpi_get_firmware_table (


cleanup:
- acpi_os_unmap_memory (rsdt_info->pointer, (acpi_size) rsdt_info->pointer->length);
- ACPI_MEM_FREE (rsdt_info);
-
+ if (rsdt_info) {
+ if (rsdt_info->pointer) {
+ acpi_os_unmap_memory (rsdt_info->pointer, (acpi_size) rsdt_info->pointer->length);
+ }
+ ACPI_MEM_FREE (rsdt_info);
+ }
if (header) {
ACPI_MEM_FREE (header);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/