[PATCH](acpi:memory hotplug) Remove strange add_memory fail message
From: Yasunori Goto
Date: Wed Oct 18 2006 - 10:21:46 EST
Hello.
I wrote a patch to avoid redundant memory hot-add call at boot time.
This was cause of strange fail message of memory hotplug
like "ACPI: add_memory failed".
Memory is recognized by early boot code with EFI/E820.
But, if DSDT describes memory devices for them, then hot-add
code is called for already recognized memory, and it shows fail messages
with -EEXIST.
So, sys admin will misunderstand this message as something wrong by
it.
This patch avoids them by preventing redundant hot-add call until
completion of driver initialization.
This patch is for 2.6.19-rc2.
I tested this patch on Tiger4 with my hot-add emulation.
Please apply.
Signed-off-by: Yasunori Goto <y-goto@xxxxxxxxxxxxxx>
---
drivers/acpi/acpi_memhotplug.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
---
Index: linux-2.6.18/drivers/acpi/acpi_memhotplug.c
===================================================================
--- linux-2.6.18.orig/drivers/acpi/acpi_memhotplug.c 2006-10-18 21:12:33.000000000 +0900
+++ linux-2.6.18/drivers/acpi/acpi_memhotplug.c 2006-10-18 22:50:44.000000000 +0900
@@ -85,6 +85,8 @@
struct list_head res_list;
};
+int acpi_hotmem_initialized = 0;
+
static acpi_status
acpi_memory_get_resource(struct acpi_resource *resource, void *context)
{
@@ -438,6 +440,15 @@
struct acpi_memory_device *mem_device;
int result = 0;
+ /*
+ * Early boot code has recognized memory area by EFI/E820.
+ * If DSDT shows these memory devices on boot, hotplug is not necessary
+ * for them. So, it just returns until completion of this driver's
+ * start up.
+ */
+ if (!acpi_hotmem_initialized)
+ return 0;
+
mem_device = acpi_driver_data(device);
if (!acpi_memory_check_device(mem_device)) {
@@ -537,6 +548,7 @@
return -ENODEV;
}
+ acpi_hotmem_initialized = 1;
return 0;
}
--
Yasunori Goto
-
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/