Commit aafbdf71 authored by Alexey Starikovskiy's avatar Alexey Starikovskiy Committed by Thomas Gleixner

x86: fix mpparse/acpi interaction

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: default avatarSitsofe Wheeler <sitsofe@yahoo.com>
Bisected-by: default avatarSitsofe Wheeler <sitsofe@yahoo.com>
Signed-off-by: default avatarAlexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 59f4519a
...@@ -1019,6 +1019,11 @@ void __init mp_config_acpi_legacy_irqs(void) ...@@ -1019,6 +1019,11 @@ void __init mp_config_acpi_legacy_irqs(void)
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {
int idx; 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++) { for (idx = 0; idx < mp_irq_entries; idx++) {
struct mp_config_intsrc *irq = mp_irqs + idx; struct mp_config_intsrc *irq = mp_irqs + idx;
...@@ -1039,10 +1044,6 @@ void __init mp_config_acpi_legacy_irqs(void) ...@@ -1039,10 +1044,6 @@ void __init mp_config_acpi_legacy_irqs(void)
continue; /* IRQ already used */ 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_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; mp_irqs[mp_irq_entries].mp_dstirq = i;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment