Merge branch 'topic/ctxfi' into for-linus
[pandora-kernel.git] / drivers / acpi / processor_core.c
index 775324e..23f0fb8 100644 (file)
@@ -82,7 +82,7 @@ static int acpi_processor_add(struct acpi_device *device);
 static int acpi_processor_start(struct acpi_device *device);
 static int acpi_processor_remove(struct acpi_device *device, int type);
 static int acpi_processor_info_open_fs(struct inode *inode, struct file *file);
-static void acpi_processor_notify(acpi_handle handle, u32 event, void *data);
+static void acpi_processor_notify(struct acpi_device *device, u32 event);
 static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu);
 static int acpi_processor_handle_eject(struct acpi_processor *pr);
 
@@ -104,6 +104,7 @@ static struct acpi_driver acpi_processor_driver = {
                .start = acpi_processor_start,
                .suspend = acpi_processor_suspend,
                .resume = acpi_processor_resume,
+               .notify = acpi_processor_notify,
                },
 };
 
@@ -359,7 +360,6 @@ static int acpi_processor_add_fs(struct acpi_device *device)
                if (!acpi_device_dir(device))
                        return -ENODEV;
        }
-       acpi_device_dir(device)->owner = THIS_MODULE;
 
        /* 'info' [R] */
        entry = proc_create_data(ACPI_PROCESSOR_FILE_INFO,
@@ -692,7 +692,6 @@ static DEFINE_PER_CPU(void *, processor_device_array);
 static int __cpuinit acpi_processor_start(struct acpi_device *device)
 {
        int result = 0;
-       acpi_status status = AE_OK;
        struct acpi_processor *pr;
        struct sys_device *sysdev;
 
@@ -729,9 +728,6 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
        if (sysfs_create_link(&device->dev.kobj, &sysdev->kobj, "sysdev"))
                return -EFAULT;
 
-       status = acpi_install_notify_handler(pr->handle, ACPI_DEVICE_NOTIFY,
-                                            acpi_processor_notify, pr);
-
        /* _PDC call should be done before doing anything else (if reqd.). */
        arch_acpi_processor_init_pdc(pr);
        acpi_processor_set_pdc(pr);
@@ -777,18 +773,14 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
        return result;
 }
 
-static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
+static void acpi_processor_notify(struct acpi_device *device, u32 event)
 {
-       struct acpi_processor *pr = data;
-       struct acpi_device *device = NULL;
+       struct acpi_processor *pr = acpi_driver_data(device);
        int saved;
 
        if (!pr)
                return;
 
-       if (acpi_bus_get_device(pr->handle, &device))
-               return;
-
        switch (event) {
        case ACPI_PROCESSOR_NOTIFY_PERFORMANCE:
                saved = pr->performance_platform_limit;
@@ -852,7 +844,7 @@ static int acpi_processor_add(struct acpi_device *device)
        if (!pr)
                return -ENOMEM;
 
-       if (!alloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) {
+       if (!zalloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) {
                kfree(pr);
                return -ENOMEM;
        }
@@ -867,7 +859,6 @@ static int acpi_processor_add(struct acpi_device *device)
 
 static int acpi_processor_remove(struct acpi_device *device, int type)
 {
-       acpi_status status = AE_OK;
        struct acpi_processor *pr = NULL;
 
 
@@ -886,9 +877,6 @@ static int acpi_processor_remove(struct acpi_device *device, int type)
 
        acpi_processor_power_exit(pr, device);
 
-       status = acpi_remove_notify_handler(pr->handle, ACPI_DEVICE_NOTIFY,
-                                           acpi_processor_notify);
-
        sysfs_remove_link(&device->dev.kobj, "sysdev");
 
        acpi_processor_remove_fs(device);
@@ -1163,7 +1151,6 @@ static int __init acpi_processor_init(void)
        acpi_processor_dir = proc_mkdir(ACPI_PROCESSOR_CLASS, acpi_root_dir);
        if (!acpi_processor_dir)
                return -ENOMEM;
-       acpi_processor_dir->owner = THIS_MODULE;
 
        /*
         * Check whether the system is DMI table. If yes, OSPM