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: 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>
This commit is contained in:
Родитель
59f4519ad7
Коммит
aafbdf71f1
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче