[PATCH] x86: left over fix for leak of early_ioremp
Signed-off-by: Yinghai Lu <[email protected]>
Index: linux-2.6/drivers/acpi/tables.c
===================================================================
--- linux-2.6.orig/drivers/acpi/tables.c
+++ linux-2.6/drivers/acpi/tables.c
@@ -206,8 +206,10 @@ acpi_table_parse_entries(char *id,
table_end) {
if (entry->type == entry_id
&& (!max_entries || count++ < max_entries))
- if (handler(entry, table_end))
+ if (handler(entry, table_end)) {
+ acpi_os_unmap_memory(table_header, table_header->length);
return -EINVAL;
+ }
entry = (struct acpi_subtable_header *)
((unsigned long)entry + entry->length);
@@ -282,6 +285,7 @@ static void __init check_multiple_madt(v
"notify [email protected]\n",
acpi_apic_instance ? 0 : 2);
+ acpi_os_unmap_memory(table, table->length);
} else
acpi_apic_instance = 0;
Index: linux-2.6/drivers/firmware/dmi_scan.c
===================================================================
--- linux-2.6.orig/drivers/firmware/dmi_scan.c
+++ linux-2.6/drivers/firmware/dmi_scan.c
@@ -353,6 +353,7 @@ void __init dmi_scan_machine(void)
return;
}
}
+ dmi_iounmap(p, 0x10000);
}
out: printk(KERN_INFO "DMI not present or invalid.\n");
}
* Yinghai Lu <[email protected]> wrote:
> && (!max_entries || count++ < max_entries))
> - if (handler(entry, table_end))
> + if (handler(entry, table_end)) {
> + acpi_os_unmap_memory(table_header, table_header->length);
> return -EINVAL;
> + }
> + acpi_os_unmap_memory(table, table->length);
> }
> + dmi_iounmap(p, 0x10000);
thanks, applied.
Ingo