aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@citrix.com>2012-08-09 16:45:12 +0100
committerDavid Vrabel <david.vrabel@citrix.com>2012-08-09 16:45:12 +0100
commit0bebd752f8c8158aad0ede8b8232870d22d09115 (patch)
tree4611aaf26e7c16d82017ec99d0e1a6f8c5def350
parentafa8c5bb3d29f9fa4712e9d7f00122cbcdacb458 (diff)
downloadxen-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.c2
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;