Commit c4686c71 authored by Thomas Renninger's avatar Thomas Renninger Committed by Rafael J. Wysocki

cpufreq / ACPI: Fix not loading acpi-cpufreq driver regression

Commit d640113f introduced a regression on SMP
systems where the processor core with ACPI id zero is disabled
(typically should be the case because of hyperthreading).
The regression got spread through stable kernels.
On 3.0.X it got introduced via 3.0.18.

Such platforms may be rare, but do exist.
Look out for a disabled processor with acpi_id 0 in dmesg:
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x10] disabled)

This problem has been observed on a:
HP Proliant BL280c G6 blade

This patch restricts the introduced workaround to platforms
with nr_cpu_ids <= 1.
Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
CC: stable@vger.kernel.org
Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
parent bd0a521e
...@@ -189,10 +189,12 @@ int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id) ...@@ -189,10 +189,12 @@ int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id)
* Processor (CPU3, 0x03, 0x00000410, 0x06) {} * Processor (CPU3, 0x03, 0x00000410, 0x06) {}
* } * }
* *
* Ignores apic_id and always return 0 for CPU0's handle. * Ignores apic_id and always returns 0 for the processor
* handle with acpi id 0 if nr_cpu_ids is 1.
* This should be the case if SMP tables are not found.
* Return -1 for other CPU's handle. * Return -1 for other CPU's handle.
*/ */
if (acpi_id == 0) if (nr_cpu_ids <= 1 && acpi_id == 0)
return acpi_id; return acpi_id;
else else
return apic_id; return apic_id;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment