diff options
author | Fenghua Yu <fenghua.yu@intel.com> | 2007-08-07 18:40:30 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-08-07 18:40:30 -0400 |
commit | 501092929ccb8a1d2eb0ed700e38df4ae0de7108 (patch) | |
tree | c8478b084056949f90ced4d381275cd3e0d634de /drivers | |
parent | ed3110efb538d7acbf635095c1382118f7414f75 (diff) |
acpi-cpufreq: Fix some x86/x86-64 acpi-cpufreq driver issues
This patch addresses some issues in x86/x86-64 acpi-cpufreq driver:
1. Current memory allocation for acpi_perf_data is actually open-coded
alloc_percpu(). The patch defines and handles acpi_perf_data as percpu
data. The code will be cleaner and easier to be maintained with this
change.
2. Won't load driver in acpi_cpufreq_early_init() failure case.
3. Add __init for acpi_cpufreq_early_init().
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/processor_perflib.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c index c4efc0c17f8f..463b0247cbc5 100644 --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c | |||
@@ -539,7 +539,7 @@ end: | |||
539 | } | 539 | } |
540 | 540 | ||
541 | int acpi_processor_preregister_performance( | 541 | int acpi_processor_preregister_performance( |
542 | struct acpi_processor_performance **performance) | 542 | struct acpi_processor_performance *performance) |
543 | { | 543 | { |
544 | int count, count_target; | 544 | int count, count_target; |
545 | int retval = 0; | 545 | int retval = 0; |
@@ -567,12 +567,12 @@ int acpi_processor_preregister_performance( | |||
567 | continue; | 567 | continue; |
568 | } | 568 | } |
569 | 569 | ||
570 | if (!performance || !performance[i]) { | 570 | if (!performance || !percpu_ptr(performance, i)) { |
571 | retval = -EINVAL; | 571 | retval = -EINVAL; |
572 | continue; | 572 | continue; |
573 | } | 573 | } |
574 | 574 | ||
575 | pr->performance = performance[i]; | 575 | pr->performance = percpu_ptr(performance, i); |
576 | cpu_set(i, pr->performance->shared_cpu_map); | 576 | cpu_set(i, pr->performance->shared_cpu_map); |
577 | if (acpi_processor_get_psd(pr)) { | 577 | if (acpi_processor_get_psd(pr)) { |
578 | retval = -EINVAL; | 578 | retval = -EINVAL; |