diff options
| -rw-r--r-- | drivers/acpi/processor_core.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index e944aaee4e06..2afb3d2086b3 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
| @@ -724,6 +724,25 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data) | |||
| 724 | return; | 724 | return; |
| 725 | } | 725 | } |
| 726 | 726 | ||
| 727 | static int acpi_cpu_soft_notify(struct notifier_block *nfb, | ||
| 728 | unsigned long action, void *hcpu) | ||
| 729 | { | ||
| 730 | unsigned int cpu = (unsigned long)hcpu; | ||
| 731 | struct acpi_processor *pr = processors[cpu]; | ||
| 732 | |||
| 733 | if (action == CPU_ONLINE && pr) { | ||
| 734 | acpi_processor_ppc_has_changed(pr); | ||
| 735 | acpi_processor_cst_has_changed(pr); | ||
| 736 | acpi_processor_tstate_has_changed(pr); | ||
| 737 | } | ||
| 738 | return NOTIFY_OK; | ||
| 739 | } | ||
| 740 | |||
| 741 | static struct notifier_block acpi_cpu_notifier = | ||
| 742 | { | ||
| 743 | .notifier_call = acpi_cpu_soft_notify, | ||
| 744 | }; | ||
| 745 | |||
| 727 | static int acpi_processor_add(struct acpi_device *device) | 746 | static int acpi_processor_add(struct acpi_device *device) |
| 728 | { | 747 | { |
| 729 | struct acpi_processor *pr = NULL; | 748 | struct acpi_processor *pr = NULL; |
| @@ -987,6 +1006,7 @@ void acpi_processor_install_hotplug_notify(void) | |||
| 987 | ACPI_UINT32_MAX, | 1006 | ACPI_UINT32_MAX, |
| 988 | processor_walk_namespace_cb, &action, NULL); | 1007 | processor_walk_namespace_cb, &action, NULL); |
| 989 | #endif | 1008 | #endif |
| 1009 | register_hotcpu_notifier(&acpi_cpu_notifier); | ||
| 990 | } | 1010 | } |
| 991 | 1011 | ||
| 992 | static | 1012 | static |
| @@ -999,6 +1019,7 @@ void acpi_processor_uninstall_hotplug_notify(void) | |||
| 999 | ACPI_UINT32_MAX, | 1019 | ACPI_UINT32_MAX, |
| 1000 | processor_walk_namespace_cb, &action, NULL); | 1020 | processor_walk_namespace_cb, &action, NULL); |
| 1001 | #endif | 1021 | #endif |
| 1022 | unregister_hotcpu_notifier(&acpi_cpu_notifier); | ||
| 1002 | } | 1023 | } |
| 1003 | 1024 | ||
| 1004 | /* | 1025 | /* |
