2008-01-17 20:40:21

by Yinghai Lu

[permalink] [raw]
Subject: [PATCH] x86: left over fix for leak of early_ioremp

[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");
}


2008-01-17 20:57:58

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86: left over fix for leak of early_ioremp


* 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