[PATCH: 011/012] Memory hotplug for new nodes v.2 (Register start func for acpi_memhotplug)

From: Yasunori Goto
Date: Fri Feb 17 2006 - 08:30:35 EST



This is a patch to create start function which calls add_memory().
Container driver can call add_memory() by this. If this is not,
even if the node which is defined container device in DSDT is added,
the container driver can't call memory hotplug code.

Signed-off-by: Yasunori Goto <y-goto@xxxxxxxxxxxxxx>


Index: pgdat3/drivers/acpi/acpi_memhotplug.c
===================================================================
--- pgdat3.orig/drivers/acpi/acpi_memhotplug.c 2006-02-17 15:58:04.000000000 +0900
+++ pgdat3/drivers/acpi/acpi_memhotplug.c 2006-02-17 16:18:36.000000000 +0900
@@ -57,6 +57,7 @@ MODULE_LICENSE("GPL");

static int acpi_memory_device_add(struct acpi_device *device);
static int acpi_memory_device_remove(struct acpi_device *device, int type);
+static int acpi_memory_device_start (struct acpi_device *device);

static struct acpi_driver acpi_memory_device_driver = {
.name = ACPI_MEMORY_DEVICE_DRIVER_NAME,
@@ -65,6 +66,7 @@ static struct acpi_driver acpi_memory_de
.ops = {
.add = acpi_memory_device_add,
.remove = acpi_memory_device_remove,
+ .start = acpi_memory_device_start,
},
};

@@ -382,6 +384,26 @@ static int acpi_memory_device_remove(str
return_VALUE(0);
}

+static int
+acpi_memory_device_start (struct acpi_device *device)
+{
+ struct acpi_memory_device *mem_device = NULL;
+ int result = 0;
+
+ ACPI_FUNCTION_TRACE("acpi_memory_device_start");
+
+ mem_device = (struct acpi_memory_device *) acpi_driver_data(device);
+
+ if (!acpi_memory_check_device(mem_device)){
+ /* call add_memory func */
+ result = acpi_memory_enable_device(mem_device);
+ if (result)
+ ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
+ "Error in acpi_memory_enable_device\n"));
+ }
+ return_VALUE(result);
+}
+
/*
* Helper function to check for memory device
*/

--
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/