diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-16 03:19:46 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 10:36:55 +0200 |
commit | 6df8809bbd1b48cc6d428df7372ed749c8711641 (patch) | |
tree | 6124bf3440d48cd474b79f8e7fcf378bee099a5e | |
parent | x86: keep MP_intsrc_info untouched if we do not update mptable (diff) | |
download | linux-6df8809bbd1b48cc6d428df7372ed749c8711641.tar.xz linux-6df8809bbd1b48cc6d428df7372ed749c8711641.zip |
x86: use dstapic in mp_config_acpi_legacy_irqs
so we don't get the same value multiple times.
also make mp_config_acpi_legacy_irqs more readable by moving assignments
together.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/acpi/boot.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 4d370b1c5ae8..29b365a66cf3 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@ -962,8 +962,8 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base) void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi) { - int ioapic = -1; - int pin = -1; + int ioapic; + int pin; /* * Convert 'gsi' to 'ioapic.pin'. @@ -997,8 +997,9 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi) void __init mp_config_acpi_legacy_irqs(void) { - int i = 0; - int ioapic = -1; + int i; + int ioapic; + unsigned int dstapic; #if defined (CONFIG_MCA) || defined (CONFIG_EISA) /* @@ -1023,6 +1024,7 @@ void __init mp_config_acpi_legacy_irqs(void) ioapic = mp_find_ioapic(0); if (ioapic < 0) return; + dstapic = mp_ioapics[ioapic].mp_apicid; /* * Use the default configuration for the IRQs 0-15. Unless @@ -1031,11 +1033,6 @@ void __init mp_config_acpi_legacy_irqs(void) for (i = 0; i < 16; i++) { int idx; - mp_irqs[mp_irq_entries].mp_type = MP_INTSRC; - mp_irqs[mp_irq_entries].mp_irqflag = 0; /* Conforming */ - mp_irqs[mp_irq_entries].mp_srcbus = MP_ISA_BUS; - mp_irqs[mp_irq_entries].mp_dstapic = mp_ioapics[ioapic].mp_apicid; - for (idx = 0; idx < mp_irq_entries; idx++) { struct mp_config_intsrc *irq = mp_irqs + idx; @@ -1045,9 +1042,8 @@ void __init mp_config_acpi_legacy_irqs(void) break; /* Do we already have a mapping for this IOAPIC pin */ - if ((irq->mp_dstapic == - mp_irqs[mp_irq_entries].mp_dstapic) && - (irq->mp_dstirq == i)) + if (irq->mp_dstapic == dstapic && + irq->mp_dstirq == i) break; } @@ -1056,8 +1052,12 @@ void __init mp_config_acpi_legacy_irqs(void) continue; /* IRQ already used */ } + mp_irqs[mp_irq_entries].mp_type = MP_INTSRC; + mp_irqs[mp_irq_entries].mp_irqflag = 0; /* Conforming */ + mp_irqs[mp_irq_entries].mp_srcbus = MP_ISA_BUS; + mp_irqs[mp_irq_entries].mp_dstapic = dstapic; mp_irqs[mp_irq_entries].mp_irqtype = mp_INT; - mp_irqs[mp_irq_entries].mp_srcbusirq = i; /* Identity mapped */ + mp_irqs[mp_irq_entries].mp_srcbusirq = i; /* Identity mapped */ mp_irqs[mp_irq_entries].mp_dstirq = i; if (++mp_irq_entries == MAX_IRQ_SOURCES) |