--- qemu/roms/seabios/src/mptable.c 2018/04/24 18:27:46 1.1.1.3 +++ qemu/roms/seabios/src/mptable.c 2018/04/24 19:24:15 1.1.1.5 @@ -1,6 +1,6 @@ // MPTable generation (on emulators) // -// Copyright (C) 2008,2009 Kevin O'Connor +// Copyright (C) 2008-2010 Kevin O'Connor // Copyright (C) 2006 Fabrice Bellard // // This file may be distributed under the terms of the GNU LGPLv3 license. @@ -59,7 +59,7 @@ mptable_init(void) cpu->apicid = i; cpu->apicver = apic_version; /* cpu flags: enabled, bootstrap cpu */ - cpu->cpuflag = (i < CountCPUs) | ((i == 0) << 1); + cpu->cpuflag = ((icpusignature = cpuid_signature; cpu->featureflag = cpuid_features; cpu++; @@ -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)