[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] pm: don't truncate processors' ACPI IDs to 8 bits
# HG changeset patch # User Jan Beulich <jbeulich@xxxxxxxxxx> # Date 1314004239 -3600 # Node ID 0849b0e59e2418e8215616df147f955b01b07577 # Parent 07f78b5bd03c02e32324eaa00487643d27b7ffa8 pm: don't truncate processors' ACPI IDs to 8 bits This is just another adjustment to allow systems with very many CPUs (or unusual ACPI IDs) to be properly power-managed. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- diff -r 07f78b5bd03c -r 0849b0e59e24 xen/arch/ia64/linux-xen/acpi.c --- a/xen/arch/ia64/linux-xen/acpi.c Mon Aug 22 10:10:04 2011 +0100 +++ b/xen/arch/ia64/linux-xen/acpi.c Mon Aug 22 10:10:39 2011 +0100 @@ -221,11 +221,14 @@ {[0 ... MAX_LOCAL_SAPIC - 1] = 0xffff }; /* acpi id to cpu id */ -int get_cpu_id(u8 acpi_id) +int get_cpu_id(u32 acpi_id) { int i; u16 apic_id; + if ( acpi_id >= MAX_LOCAL_SAPIC ) + return -EINVAL; + apic_id = ia64_acpiid_to_sapicid[acpi_id]; if ( apic_id == 0xffff ) return -EINVAL; diff -r 07f78b5bd03c -r 0849b0e59e24 xen/arch/x86/acpi/cpu_idle.c --- a/xen/arch/x86/acpi/cpu_idle.c Mon Aug 22 10:10:04 2011 +0100 +++ b/xen/arch/x86/acpi/cpu_idle.c Mon Aug 22 10:10:39 2011 +0100 @@ -895,11 +895,14 @@ acpi_power->safe_state = cx; } -int get_cpu_id(u8 acpi_id) +int get_cpu_id(u32 acpi_id) { int i; u32 apic_id; + if ( acpi_id >= MAX_MADT_ENTRIES ) + return -1; + apic_id = x86_acpiid_to_apicid[acpi_id]; if ( apic_id == BAD_APICID ) return -1; @@ -976,7 +979,7 @@ print_cx_pminfo(cpu, power); /* map from acpi_id to cpu_id */ - cpu_id = get_cpu_id((u8)cpu); + cpu_id = get_cpu_id(cpu); if ( cpu_id == -1 ) { printk(XENLOG_ERR "no cpu_id for acpi_id %d\n", cpu); diff -r 07f78b5bd03c -r 0849b0e59e24 xen/include/acpi/cpufreq/processor_perf.h --- a/xen/include/acpi/cpufreq/processor_perf.h Mon Aug 22 10:10:04 2011 +0100 +++ b/xen/include/acpi/cpufreq/processor_perf.h Mon Aug 22 10:10:39 2011 +0100 @@ -6,7 +6,7 @@ #define XEN_PX_INIT 0x80000000 -int get_cpu_id(u8); +int get_cpu_id(u32); int powernow_cpufreq_init(void); unsigned int powernow_register_driver(void); unsigned int get_measured_perf(unsigned int cpu, unsigned int flag); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |