summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAlex Williamson <alex.williamson@hp.com>2007-08-13 23:49:46 +0200
committerTony Luck <tony.luck@intel.com>2007-08-15 22:20:38 +0200
commit182fdd225de8fc3b1b721ae944fc41146a0bd812 (patch)
tree0b9d55146bebbbbe79358f20caf7c644e695607b /arch
parent[IA64] SGI Altix : fix a force_interrupt bug on altix (diff)
downloadlinux-182fdd225de8fc3b1b721ae944fc41146a0bd812.tar.xz
linux-182fdd225de8fc3b1b721ae944fc41146a0bd812.zip
[IA64] Fix processor_get_freq
The core cpufreq code doesn't appear to understand returning -EAGAIN for the get() function of the cpufreq_driver. If PAL_GET_PSTATE returns -1, such as when running on Xen, scaling_cur_freq is happy to return 4294967285 kHz (ie. (unsigned)-11). The other drivers appear to return 0 for a failure, and doing so gives me the max frequency from scaling_cur_frequency and "<unknown>" from cpuinfo_cur_frequency. I believe that's the desired behavior. Signed-off-by: Alex Williamson <alex.williamson@hp.com> Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/kernel/cpufreq/acpi-cpufreq.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c
index 15c08d52f09f..8c6ec7070844 100644
--- a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c
+++ b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c
@@ -113,10 +113,8 @@ processor_get_freq (
saved_mask = current->cpus_allowed;
set_cpus_allowed(current, cpumask_of_cpu(cpu));
- if (smp_processor_id() != cpu) {
- ret = -EAGAIN;
+ if (smp_processor_id() != cpu)
goto migrate_end;
- }
/* processor_get_pstate gets the instantaneous frequency */
ret = processor_get_pstate(&value);
@@ -125,7 +123,7 @@ processor_get_freq (
set_cpus_allowed(current, saved_mask);
printk(KERN_WARNING "get performance failed with error %d\n",
ret);
- ret = -EAGAIN;
+ ret = 0;
goto migrate_end;
}
clock_freq = extract_clock(data, value, cpu);