ACPI / processor: Fix failure of loading acpi-cpufreq driver
authorLan Tianyu <tianyu.lan@intel.com>
Wed, 30 Apr 2014 07:46:33 +0000 (15:46 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 30 Apr 2014 23:46:43 +0000 (01:46 +0200)
commit4985c32ee4241d1aba1beeac72294faa46aaff10
tree39dc072d8f41424ccf0e8cb90341b1622d01dd07
parentd1db0eea852497762cab43b905b879dfcd3b8987
ACPI / processor: Fix failure of loading acpi-cpufreq driver

According commit d640113fe (ACPI: processor: fix acpi_get_cpuid for UP
processor),  BIOS may not provide _MAT or MADT tables and acpi_get_apicid()
always returns -1. For these cases, original code will pass apic_id with
vaule of -1 to acpi_map_cpuid() and it will check the acpi_id. If acpi_id
is equal to zero, ignores apic_id and return zero for CPU0.

Commit b981513 (ACPI / scan: bail out early if failed to parse APIC
ID for CPU) changed the behavior. Return ENODEV when find apic_id is
less than zero after calling acpi_get_apicid(). This causes acpi-cpufreq
driver fails to be loaded on some machines. This patch is to fix it.

Fixes: b981513f806d (ACPI / scan: bail out early if failed to parse APIC ID for CPU)
References: https://bugzilla.kernel.org/show_bug.cgi?id=73781
Cc: 3.14+ <stable@vger.kernel.org> # 3.14+
Reported-and-tested-by: KATO Hiroshi <katoh@mikage.ne.jp>
Reported-and-tested-by: Stuart Foster <smf.linux@ntlworld.com>
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpi_processor.c