Skip to content

Commit

Permalink
x86: fix mpparse/acpi interaction
Browse files Browse the repository at this point in the history
Sitsofe Wheeler reported boot problems on linux-next.

It looks like the same issue as found by Soeren Sandman in 7575217f656a93,
"x86: initialize all fields of mp_irqs[mp_irq_entries]".

But his fix is also not complete, as dstapic is used before it assigned.

Reported-by: Sitsofe Wheeler <sitsofe@yahoo.com>
Bisected-by: Sitsofe Wheeler <sitsofe@yahoo.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Alexey Starikovskiy authored and Thomas Gleixner committed May 25, 2008
1 parent 59f4519 commit aafbdf7
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions arch/x86/kernel/acpi/boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -1019,6 +1019,11 @@ 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;

Expand All @@ -1039,10 +1044,6 @@ 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 = mp_ioapics[ioapic].mp_apicid;
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_dstirq = i;
Expand Down

0 comments on commit aafbdf7

Please sign in to comment.