diff options
author | David Vrabel <david.vrabel@citrix.com> | 2012-08-09 16:45:12 +0100 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2012-08-09 16:45:12 +0100 |
commit | 0bebd752f8c8158aad0ede8b8232870d22d09115 (patch) | |
tree | 4611aaf26e7c16d82017ec99d0e1a6f8c5def350 | |
parent | afa8c5bb3d29f9fa4712e9d7f00122cbcdacb458 (diff) | |
download | xen-0bebd752f8c8158aad0ede8b8232870d22d09115.tar.gz xen-0bebd752f8c8158aad0ede8b8232870d22d09115.tar.bz2 xen-0bebd752f8c8158aad0ede8b8232870d22d09115.zip |
cpufreq: P state stats aren't available if there is no cpufreq driver
If there is no cpufreq driver (e.g., with an AMD Opteron 8212) then
reading the P state statistics causes a deadlock as an uninitialized
spinlock is locked in do_get_pm_info(). The spinlock is initialized in
cpufreq_statistic_init() which is not called if cpufreq_driver ==
NULL.
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Committed-by: Jan Beulich <jbeulich@suse.com>
xen-unstable changeset: 25706:7fd5facb6084
xen-unstable date: Fri Aug 03 09:50:28 2012 +0200
-rw-r--r-- | xen/drivers/acpi/pmstat.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c index e0dd9131c6..9eb8451565 100644 --- a/xen/drivers/acpi/pmstat.c +++ b/xen/drivers/acpi/pmstat.c @@ -68,6 +68,8 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op) case PMSTAT_PX: if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) ) return -ENODEV; + if ( !cpufreq_driver ) + return -ENODEV; if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) ) return -EINVAL; break; |