• Naga Chumbalkar's avatar
    x86: Print real IOAPIC version for x86-64 · 58f892e0
    Naga Chumbalkar authored
    Fix the fact that the IOAPIC version number in the x86_64 code path always
    gets assigned to 0, instead of the correct value.
    Before the patch: (from "dmesg" output):
     ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
     IOAPIC[0]: apic_id 8, version 0, address 0xfec00000, GSI 0-23     <---
     After the patch:
     ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
     IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23    <---
    io_apic_get_version() was compiled out of the x86_64 code path in the commit
    Author: Andi Kleen <ak@suse.de>
    Date:   Tue Sep 26 10:52:37 2006 +0200
        [PATCH] Remove APIC version/cpu capability mpparse checking/printing
        ACPI went to great trouble to get the APIC version and CPU capabilities
        of different CPUs before passing them to the mpparser. But all
        that data was used was to print it out.  Actually it even faked some data
        based on the boot cpu, not on the actual CPU being booted.
        Remove all this code because it's not needed.
        Cc: len.brown@intel.com
    At the time, the IOAPIC version number was deliberately not printed
    in the x86_64 code path. However, after the x86 and x86_64 files were
    merged, the net result is that the IOAPIC version is printed incorrectly
    in the x86_64 code path.
    The patch below provides a fix. I have tested it with acpi, and with
    acpi=off, and did not see any problems.
    Signed-off-by: default avatarNaga Chumbalkar <nagananda.chumbalkar@hp.com>
    Acked-by: default avatarYinghai Lu <yhlu.kernel@gmail.com>
    LKML-Reference: <20090416014230.4885.94926.sendpatchset@localhost.localdomain>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
boot.c 45.3 KB