ACPI / scan: reduce log level of "ACPI: \_PR_.CPU4: failed to get CPU APIC ID"
authorJiang Liu <jiang.liu@linux.intel.com>
Mon, 27 Jan 2014 06:34:58 +0000 (14:34 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 27 Jan 2014 22:05:44 +0000 (23:05 +0100)
Commit b981513f806d (ACPI / scan: bail out early if failed to parse
APIC ID for CPU) emits an error message if ACPI processor driver fails
to query APIC ID for the CPU.

Originally it's designed to catch BIOS bugs for CPU hot-addition. But
it accidently reveals another type of BIOS bug that:
 1) BIOS implements ACPI objects for all possible instead of present
    CPUs. (It's valid to do that per ACPI specification.)
 2) BIOS doesn't implement the _STA method for CPU objects. OSPM assumes
    that all CPU objects are present and functioning and attempts to
    use those CPU objects for CPU enumeration, which then triggers the
    error message. According to ACPI spec, BIOS should implement _STA
    for those absent CPUs at least.

Though it's a BIOS bug in essential, there are some BIOSes in the fields
which are implmented in this way. So reduce the log level from ERR to
DEBUG to accommodate these existing BIOSes.

Fixes: b981513f806d (ACPI / scan: bail out early if failed to parse APIC ID for CPU)
Reported-and-tested-by: Jörg Otte <jrg.otte@gmail.com>
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
[rjw: Changelog]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpi_processor.c

index 6ce71b0..21c0856 100644 (file)
@@ -261,7 +261,7 @@ static int acpi_processor_get_info(struct acpi_device *device)
 
        apic_id = acpi_get_apicid(pr->handle, device_declaration, pr->acpi_id);
        if (apic_id < 0) {
-               acpi_handle_err(pr->handle, "failed to get CPU APIC ID.\n");
+               acpi_handle_debug(pr->handle, "failed to get CPU APIC ID.\n");
                return -ENODEV;
        }
        pr->apic_id = apic_id;