--- qemu/roms/seabios/src/mptable.c 2018/04/24 18:37:01 1.1.1.4 +++ qemu/roms/seabios/src/mptable.c 2018/04/24 19:43:56 1.1.1.6 @@ -68,9 +68,10 @@ mptable_init(void) // PCI buses struct mpt_bus *buses = (void*)cpu, *bus = buses; - int bdf, max, lastbus = -1; - foreachpci(bdf, max) { - int curbus = pci_bdf_to_bus(bdf); + int lastbus = -1; + struct pci_device *pci; + foreachpci(pci) { + int curbus = pci_bdf_to_bus(pci->bdf); if (curbus == lastbus) continue; lastbus = curbus; @@ -106,7 +107,8 @@ mptable_init(void) int dev = -1; unsigned short mask = 0, pinmask = 0; - foreachpci(bdf, max) { + foreachpci(pci) { + u16 bdf = pci->bdf; int pin = pci_config_readb(bdf, PCI_INTERRUPT_PIN); int irq = pci_config_readb(bdf, PCI_INTERRUPT_LINE); if (pin == 0) @@ -167,7 +169,7 @@ mptable_init(void) intsrc->irqflag = 0; /* PO, EL default */ intsrc->srcbus = isabusid; /* ISA */ intsrc->srcbusirq = 0; - intsrc->dstapic = 0; /* BSP == APIC #0 */ + intsrc->dstapic = 0xff; /* to all local APICs */ intsrc->dstirq = 1; /* LINTIN1 */ intsrc++; entrycount += intsrc - intsrcs;