]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - drivers/acpi/acpi_memhotplug.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[linux-2.6.git] / drivers / acpi / acpi_memhotplug.c
index 80eacbe157e23d0e28756f9c4bcd2bf479f687b3..d98571385656154b8ef39664852e808397846a11 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/memory_hotplug.h>
+#include <linux/slab.h>
 #include <acpi/acpi_drivers.h>
 
 #define ACPI_MEMORY_DEVICE_CLASS               "memory"
@@ -53,7 +54,6 @@ 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 const struct acpi_device_id memory_device_ids[] = {
        {ACPI_MEMORY_DEVICE_HID, 0},
@@ -68,7 +68,6 @@ static struct acpi_driver acpi_memory_device_driver = {
        .ops = {
                .add = acpi_memory_device_add,
                .remove = acpi_memory_device_remove,
-               .start = acpi_memory_device_start,
                },
 };
 
@@ -431,28 +430,6 @@ static int acpi_memory_device_add(struct acpi_device *device)
 
        printk(KERN_DEBUG "%s \n", acpi_device_name(device));
 
-       return result;
-}
-
-static int acpi_memory_device_remove(struct acpi_device *device, int type)
-{
-       struct acpi_memory_device *mem_device = NULL;
-
-
-       if (!device || !acpi_driver_data(device))
-               return -EINVAL;
-
-       mem_device = acpi_driver_data(device);
-       kfree(mem_device);
-
-       return 0;
-}
-
-static int acpi_memory_device_start (struct acpi_device *device)
-{
-       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
@@ -462,8 +439,6 @@ static int acpi_memory_device_start (struct acpi_device *device)
        if (!acpi_hotmem_initialized)
                return 0;
 
-       mem_device = acpi_driver_data(device);
-
        if (!acpi_memory_check_device(mem_device)) {
                /* call add_memory func */
                result = acpi_memory_enable_device(mem_device);
@@ -474,6 +449,20 @@ static int acpi_memory_device_start (struct acpi_device *device)
        return result;
 }
 
+static int acpi_memory_device_remove(struct acpi_device *device, int type)
+{
+       struct acpi_memory_device *mem_device = NULL;
+
+
+       if (!device || !acpi_driver_data(device))
+               return -EINVAL;
+
+       mem_device = acpi_driver_data(device);
+       kfree(mem_device);
+
+       return 0;
+}
+
 /*
  * Helper function to check for memory device
  */
@@ -549,7 +538,7 @@ static int __init acpi_memory_device_init(void)
 
        status = acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
                                     ACPI_UINT32_MAX,
-                                    acpi_memory_register_notify_handler,
+                                    acpi_memory_register_notify_handler, NULL,
                                     NULL, NULL);
 
        if (ACPI_FAILURE(status)) {
@@ -573,7 +562,7 @@ static void __exit acpi_memory_device_exit(void)
         */
        status = acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
                                     ACPI_UINT32_MAX,
-                                    acpi_memory_deregister_notify_handler,
+                                    acpi_memory_deregister_notify_handler, NULL,
                                     NULL, NULL);
 
        if (ACPI_FAILURE(status))