Use bitmap library for pin_programmed rather than reinvent bitmaps. Signed-off-by: Akinobu Mita --- arch/x86/kernel/mpparse_32.c | 15 ++++++--------- arch/x86/kernel/mpparse_64.c | 16 +++++++--------- 2 files changed, 13 insertions(+), 18 deletions(-) Index: 2.6-git/arch/x86/kernel/mpparse_64.c =================================================================== --- 2.6-git.orig/arch/x86/kernel/mpparse_64.c +++ 2.6-git/arch/x86/kernel/mpparse_64.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -643,7 +644,7 @@ static struct mp_ioapic_routing { int apic_id; int gsi_start; int gsi_end; - u32 pin_programmed[4]; + DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1); } mp_ioapic_routing[MAX_IO_APICS]; static int mp_find_ioapic(int gsi) @@ -802,9 +803,8 @@ void __init mp_config_acpi_legacy_irqs(v int mp_register_gsi(u32 gsi, int triggering, int polarity) { - int ioapic = -1; - int ioapic_pin = 0; - int idx, bit = 0; + int ioapic; + int ioapic_pin; if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC) return gsi; @@ -826,21 +826,19 @@ int mp_register_gsi(u32 gsi, int trigger * with redundant pin->gsi mappings (but unique PCI devices); * we only program the IOAPIC on the first. */ - bit = ioapic_pin % 32; - idx = (ioapic_pin < 32) ? 0 : (ioapic_pin / 32); - if (idx > 3) { + if (ioapic_pin > MP_MAX_IOAPIC_PIN) { printk(KERN_ERR "Invalid reference to IOAPIC pin " "%d-%d\n", mp_ioapic_routing[ioapic].apic_id, ioapic_pin); return gsi; } - if ((1<gsi mappings (but unique PCI devices); * we only program the IOAPIC on the first. */ - bit = ioapic_pin % 32; - idx = (ioapic_pin < 32) ? 0 : (ioapic_pin / 32); - if (idx > 3) { + if (ioapic_pin > MP_MAX_IOAPIC_PIN) { printk(KERN_ERR "Invalid reference to IOAPIC pin " "%d-%d\n", mp_ioapic_routing[ioapic].apic_id, ioapic_pin); return gsi; } - if ((1<= 64, use IRQ compression -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/