diff options
-rw-r--r-- | drivers/acpi/processor_perflib.c | 4 | ||||
-rw-r--r-- | drivers/xen/xen-acpi-processor.c | 8 | ||||
-rw-r--r-- | include/acpi/processor.h | 3 |
3 files changed, 9 insertions, 6 deletions
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c index 53e7ac9403a7..e854582f29a6 100644 --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c | |||
@@ -465,7 +465,7 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr) | |||
465 | return result; | 465 | return result; |
466 | } | 466 | } |
467 | 467 | ||
468 | static int acpi_processor_get_performance_info(struct acpi_processor *pr) | 468 | int acpi_processor_get_performance_info(struct acpi_processor *pr) |
469 | { | 469 | { |
470 | int result = 0; | 470 | int result = 0; |
471 | acpi_status status = AE_OK; | 471 | acpi_status status = AE_OK; |
@@ -509,7 +509,7 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr) | |||
509 | #endif | 509 | #endif |
510 | return result; | 510 | return result; |
511 | } | 511 | } |
512 | 512 | EXPORT_SYMBOL_GPL(acpi_processor_get_performance_info); | |
513 | int acpi_processor_notify_smm(struct module *calling_module) | 513 | int acpi_processor_notify_smm(struct module *calling_module) |
514 | { | 514 | { |
515 | acpi_status status; | 515 | acpi_status status; |
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c index 316df65163cf..f3278a6603ca 100644 --- a/drivers/xen/xen-acpi-processor.c +++ b/drivers/xen/xen-acpi-processor.c | |||
@@ -500,16 +500,16 @@ static int __init xen_acpi_processor_init(void) | |||
500 | (void)acpi_processor_preregister_performance(acpi_perf_data); | 500 | (void)acpi_processor_preregister_performance(acpi_perf_data); |
501 | 501 | ||
502 | for_each_possible_cpu(i) { | 502 | for_each_possible_cpu(i) { |
503 | struct acpi_processor *pr; | ||
503 | struct acpi_processor_performance *perf; | 504 | struct acpi_processor_performance *perf; |
504 | 505 | ||
506 | pr = per_cpu(processors, i); | ||
505 | perf = per_cpu_ptr(acpi_perf_data, i); | 507 | perf = per_cpu_ptr(acpi_perf_data, i); |
506 | rc = acpi_processor_register_performance(perf, i); | 508 | pr->performance = perf; |
509 | rc = acpi_processor_get_performance_info(pr); | ||
507 | if (rc) | 510 | if (rc) |
508 | goto err_out; | 511 | goto err_out; |
509 | } | 512 | } |
510 | rc = acpi_processor_notify_smm(THIS_MODULE); | ||
511 | if (rc) | ||
512 | goto err_unregister; | ||
513 | 513 | ||
514 | for_each_possible_cpu(i) { | 514 | for_each_possible_cpu(i) { |
515 | struct acpi_processor *_pr; | 515 | struct acpi_processor *_pr; |
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 555d0337ad95..b327b5a9296d 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
@@ -235,6 +235,9 @@ extern void acpi_processor_unregister_performance(struct | |||
235 | if a _PPC object exists, rmmod is disallowed then */ | 235 | if a _PPC object exists, rmmod is disallowed then */ |
236 | int acpi_processor_notify_smm(struct module *calling_module); | 236 | int acpi_processor_notify_smm(struct module *calling_module); |
237 | 237 | ||
238 | /* parsing the _P* objects. */ | ||
239 | extern int acpi_processor_get_performance_info(struct acpi_processor *pr); | ||
240 | |||
238 | /* for communication between multiple parts of the processor kernel module */ | 241 | /* for communication between multiple parts of the processor kernel module */ |
239 | DECLARE_PER_CPU(struct acpi_processor *, processors); | 242 | DECLARE_PER_CPU(struct acpi_processor *, processors); |
240 | extern struct acpi_processor_errata errata; | 243 | extern struct acpi_processor_errata errata; |