[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] linux: make Xen cpufreq handling also work without _PSD objects
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1220878933 -3600 # Node ID e86f9e05144afb5d122f264494881408fb225cdb # Parent 7886619f623ef822f02d38af8a948792d4d90121 linux: make Xen cpufreq handling also work without _PSD objects _PSD objects are optional according to the ACPI spec. Also eliminate a pointless static variable. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- arch/i386/kernel/acpi/processor_extcntl_xen.c | 12 +++++------- drivers/acpi/processor_extcntl.c | 17 +++++++++++++---- 2 files changed, 18 insertions(+), 11 deletions(-) diff -r 7886619f623e -r e86f9e05144a arch/i386/kernel/acpi/processor_extcntl_xen.c --- a/arch/i386/kernel/acpi/processor_extcntl_xen.c Mon Sep 08 13:13:35 2008 +0100 +++ b/arch/i386/kernel/acpi/processor_extcntl_xen.c Mon Sep 08 14:02:13 2008 +0100 @@ -31,8 +31,6 @@ #include <linux/cpufreq.h> #include <acpi/processor.h> #include <asm/hypercall.h> - -static int xen_processor_pmbits; static int xen_cx_notifier(struct acpi_processor *pr, int action) { @@ -215,13 +213,13 @@ static struct processor_extcntl_ops xen_ void arch_acpi_processor_init_extcntl(const struct processor_extcntl_ops **ops) { - xen_processor_pmbits = (xen_start_info->flags & SIF_PM_MASK) >> 8; - - if (xen_processor_pmbits & XEN_PROCESSOR_PM_CX) + unsigned int pmbits = (xen_start_info->flags & SIF_PM_MASK) >> 8; + + if (pmbits & XEN_PROCESSOR_PM_CX) xen_extcntl_ops.pm_ops[PM_TYPE_IDLE] = xen_cx_notifier; - if (xen_processor_pmbits & XEN_PROCESSOR_PM_PX) + if (pmbits & XEN_PROCESSOR_PM_PX) xen_extcntl_ops.pm_ops[PM_TYPE_PERF] = xen_px_notifier; - if (xen_processor_pmbits & XEN_PROCESSOR_PM_TX) + if (pmbits & XEN_PROCESSOR_PM_TX) xen_extcntl_ops.pm_ops[PM_TYPE_THR] = xen_tx_notifier; *ops = &xen_extcntl_ops; diff -r 7886619f623e -r e86f9e05144a drivers/acpi/processor_extcntl.c --- a/drivers/acpi/processor_extcntl.c Mon Sep 08 13:13:35 2008 +0100 +++ b/drivers/acpi/processor_extcntl.c Mon Sep 08 14:02:13 2008 +0100 @@ -203,13 +203,22 @@ static int processor_extcntl_get_perform * processor objects to external logic. In this case, it's preferred * to use ACPI ID instead. */ - pr->performance->domain_info.num_processors = 0; + pdomain = &pr->performance->domain_info; + pdomain->num_processors = 0; ret = acpi_processor_get_psd(pr); - if (ret < 0) - goto err_out; + if (ret < 0) { + /* + * _PSD is optional - assume no coordination if absent (or + * broken), matching native kernels' behavior. + */ + pdomain->num_entries = ACPI_PSD_REV0_ENTRIES; + pdomain->revision = ACPI_PSD_REV0_REVISION; + pdomain->domain = pr->acpi_id; + pdomain->coord_type = DOMAIN_COORD_TYPE_SW_ALL; + pdomain->num_processors = 1; + } /* Some sanity check */ - pdomain = &pr->performance->domain_info; if ((pdomain->revision != ACPI_PSD_REV0_REVISION) || (pdomain->num_entries != ACPI_PSD_REV0_ENTRIES) || ((pdomain->coord_type != DOMAIN_COORD_TYPE_SW_ALL) && _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |