diff options
Diffstat (limited to 'drivers/acpi/processor_driver.c')
-rw-r--r-- | drivers/acpi/processor_driver.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c index 20a68ca386de..0034ede38710 100644 --- a/drivers/acpi/processor_driver.c +++ b/drivers/acpi/processor_driver.c | |||
@@ -82,7 +82,7 @@ MODULE_LICENSE("GPL"); | |||
82 | static int acpi_processor_add(struct acpi_device *device); | 82 | static int acpi_processor_add(struct acpi_device *device); |
83 | static int acpi_processor_remove(struct acpi_device *device, int type); | 83 | static int acpi_processor_remove(struct acpi_device *device, int type); |
84 | static void acpi_processor_notify(struct acpi_device *device, u32 event); | 84 | static void acpi_processor_notify(struct acpi_device *device, u32 event); |
85 | static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu); | 85 | static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr); |
86 | static int acpi_processor_handle_eject(struct acpi_processor *pr); | 86 | static int acpi_processor_handle_eject(struct acpi_processor *pr); |
87 | 87 | ||
88 | 88 | ||
@@ -324,10 +324,8 @@ static int acpi_processor_get_info(struct acpi_device *device) | |||
324 | * they are physically not present. | 324 | * they are physically not present. |
325 | */ | 325 | */ |
326 | if (pr->id == -1) { | 326 | if (pr->id == -1) { |
327 | if (ACPI_FAILURE | 327 | if (ACPI_FAILURE(acpi_processor_hotadd_init(pr))) |
328 | (acpi_processor_hotadd_init(pr->handle, &pr->id))) { | ||
329 | return -ENODEV; | 328 | return -ENODEV; |
330 | } | ||
331 | } | 329 | } |
332 | /* | 330 | /* |
333 | * On some boxes several processors use the same processor bus id. | 331 | * On some boxes several processors use the same processor bus id. |
@@ -539,6 +537,7 @@ err_thermal_unregister: | |||
539 | thermal_cooling_device_unregister(pr->cdev); | 537 | thermal_cooling_device_unregister(pr->cdev); |
540 | err_power_exit: | 538 | err_power_exit: |
541 | acpi_processor_power_exit(pr, device); | 539 | acpi_processor_power_exit(pr, device); |
540 | sysfs_remove_link(&device->dev.kobj, "sysdev"); | ||
542 | err_free_cpumask: | 541 | err_free_cpumask: |
543 | free_cpumask_var(pr->throttling.shared_cpu_map); | 542 | free_cpumask_var(pr->throttling.shared_cpu_map); |
544 | 543 | ||
@@ -720,18 +719,19 @@ processor_walk_namespace_cb(acpi_handle handle, | |||
720 | return (AE_OK); | 719 | return (AE_OK); |
721 | } | 720 | } |
722 | 721 | ||
723 | static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu) | 722 | static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr) |
724 | { | 723 | { |
724 | acpi_handle handle = pr->handle; | ||
725 | 725 | ||
726 | if (!is_processor_present(handle)) { | 726 | if (!is_processor_present(handle)) { |
727 | return AE_ERROR; | 727 | return AE_ERROR; |
728 | } | 728 | } |
729 | 729 | ||
730 | if (acpi_map_lsapic(handle, p_cpu)) | 730 | if (acpi_map_lsapic(handle, &pr->id)) |
731 | return AE_ERROR; | 731 | return AE_ERROR; |
732 | 732 | ||
733 | if (arch_register_cpu(*p_cpu)) { | 733 | if (arch_register_cpu(pr->id)) { |
734 | acpi_unmap_lsapic(*p_cpu); | 734 | acpi_unmap_lsapic(pr->id); |
735 | return AE_ERROR; | 735 | return AE_ERROR; |
736 | } | 736 | } |
737 | 737 | ||
@@ -748,7 +748,7 @@ static int acpi_processor_handle_eject(struct acpi_processor *pr) | |||
748 | return (0); | 748 | return (0); |
749 | } | 749 | } |
750 | #else | 750 | #else |
751 | static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu) | 751 | static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr) |
752 | { | 752 | { |
753 | return AE_ERROR; | 753 | return AE_ERROR; |
754 | } | 754 | } |
@@ -827,8 +827,6 @@ static void __exit acpi_processor_exit(void) | |||
827 | 827 | ||
828 | acpi_bus_unregister_driver(&acpi_processor_driver); | 828 | acpi_bus_unregister_driver(&acpi_processor_driver); |
829 | 829 | ||
830 | cpuidle_unregister_driver(&acpi_idle_driver); | ||
831 | |||
832 | return; | 830 | return; |
833 | } | 831 | } |
834 | 832 | ||