diff options
| -rw-r--r-- | arch/ia64/kernel/acpi.c | 3 | ||||
| -rw-r--r-- | arch/x86/kernel/acpi/boot.c | 3 | ||||
| -rw-r--r-- | drivers/acpi/processor_core.c | 7 | ||||
| -rw-r--r-- | drivers/acpi/processor_driver.c | 3 |
4 files changed, 6 insertions, 10 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index a7ca07f3754e..f1c9f70b4e45 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
| @@ -44,6 +44,7 @@ | |||
| 44 | #include <linux/efi.h> | 44 | #include <linux/efi.h> |
| 45 | #include <linux/mmzone.h> | 45 | #include <linux/mmzone.h> |
| 46 | #include <linux/nodemask.h> | 46 | #include <linux/nodemask.h> |
| 47 | #include <acpi/processor.h> | ||
| 47 | #include <asm/io.h> | 48 | #include <asm/io.h> |
| 48 | #include <asm/iosapic.h> | 49 | #include <asm/iosapic.h> |
| 49 | #include <asm/machvec.h> | 50 | #include <asm/machvec.h> |
| @@ -907,6 +908,8 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu) | |||
| 907 | cpu_set(cpu, cpu_present_map); | 908 | cpu_set(cpu, cpu_present_map); |
| 908 | ia64_cpu_to_sapicid[cpu] = physid; | 909 | ia64_cpu_to_sapicid[cpu] = physid; |
| 909 | 910 | ||
| 911 | acpi_processor_set_pdc(handle); | ||
| 912 | |||
| 910 | *pcpu = cpu; | 913 | *pcpu = cpu; |
| 911 | return (0); | 914 | return (0); |
| 912 | } | 915 | } |
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index a54d714545ff..d635a93ae59c 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
| @@ -490,6 +490,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity) | |||
| 490 | * ACPI based hotplug support for CPU | 490 | * ACPI based hotplug support for CPU |
| 491 | */ | 491 | */ |
| 492 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 492 | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
| 493 | #include <acpi/processor.h> | ||
| 493 | 494 | ||
| 494 | static void acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) | 495 | static void acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) |
| 495 | { | 496 | { |
| @@ -567,6 +568,8 @@ static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu) | |||
| 567 | goto free_new_map; | 568 | goto free_new_map; |
| 568 | } | 569 | } |
| 569 | 570 | ||
| 571 | acpi_processor_set_pdc(handle); | ||
| 572 | |||
| 570 | cpu = cpumask_first(new_map); | 573 | cpu = cpumask_first(new_map); |
| 571 | acpi_map_cpu2node(handle, cpu, physid); | 574 | acpi_map_cpu2node(handle, cpu, physid); |
| 572 | 575 | ||
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index ef34faad6003..626c75479868 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
| @@ -317,8 +317,6 @@ acpi_processor_eval_pdc(acpi_handle handle, struct acpi_object_list *pdc_in) | |||
| 317 | return status; | 317 | return status; |
| 318 | } | 318 | } |
| 319 | 319 | ||
| 320 | static int early_pdc_done; | ||
| 321 | |||
| 322 | void acpi_processor_set_pdc(acpi_handle handle) | 320 | void acpi_processor_set_pdc(acpi_handle handle) |
| 323 | { | 321 | { |
| 324 | struct acpi_object_list *obj_list; | 322 | struct acpi_object_list *obj_list; |
| @@ -326,9 +324,6 @@ void acpi_processor_set_pdc(acpi_handle handle) | |||
| 326 | if (arch_has_acpi_pdc() == false) | 324 | if (arch_has_acpi_pdc() == false) |
| 327 | return; | 325 | return; |
| 328 | 326 | ||
| 329 | if (early_pdc_done) | ||
| 330 | return; | ||
| 331 | |||
| 332 | obj_list = acpi_processor_alloc_pdc(); | 327 | obj_list = acpi_processor_alloc_pdc(); |
| 333 | if (!obj_list) | 328 | if (!obj_list) |
| 334 | return; | 329 | return; |
| @@ -369,6 +364,4 @@ void __init acpi_early_processor_set_pdc(void) | |||
| 369 | acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, | 364 | acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, |
| 370 | ACPI_UINT32_MAX, | 365 | ACPI_UINT32_MAX, |
| 371 | early_init_pdc, NULL, NULL, NULL); | 366 | early_init_pdc, NULL, NULL, NULL); |
| 372 | |||
| 373 | early_pdc_done = 1; | ||
| 374 | } | 367 | } |
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c index 7eedf7475f4e..b5658cdce27f 100644 --- a/drivers/acpi/processor_driver.c +++ b/drivers/acpi/processor_driver.c | |||
| @@ -608,9 +608,6 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device) | |||
| 608 | goto err_remove_fs; | 608 | goto err_remove_fs; |
| 609 | } | 609 | } |
| 610 | 610 | ||
| 611 | /* _PDC call should be done before doing anything else (if reqd.). */ | ||
| 612 | acpi_processor_set_pdc(pr->handle); | ||
| 613 | |||
| 614 | #ifdef CONFIG_CPU_FREQ | 611 | #ifdef CONFIG_CPU_FREQ |
| 615 | acpi_processor_ppc_has_changed(pr, 0); | 612 | acpi_processor_ppc_has_changed(pr, 0); |
| 616 | #endif | 613 | #endif |
