mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
reserve slot 1 on pci bus0
After supporting multi function pci device, we only reserve function 1 on slot 1. The user can use the other function on slot 1 in the xml config file. We should detect this wrong usage.
This commit is contained in:
@@ -1072,6 +1072,7 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
|
||||
int i;
|
||||
bool reservedIDE = false;
|
||||
bool reservedVGA = false;
|
||||
int function;
|
||||
|
||||
/* Host bridge */
|
||||
if (qemuDomainPCIAddressReserveSlot(addrs, 0) < 0)
|
||||
@@ -1107,9 +1108,14 @@ qemuAssignDevicePCISlots(virDomainDefPtr def, qemuDomainPCIAddressSetPtr addrs)
|
||||
/* PIIX3 (ISA bridge, IDE controller, something else unknown, USB controller)
|
||||
* hardcoded slot=1, multifunction device
|
||||
*/
|
||||
if (!reservedIDE &&
|
||||
qemuDomainPCIAddressReserveSlot(addrs, 1) < 0)
|
||||
goto error;
|
||||
for (function = 0; function < QEMU_PCI_ADDRESS_LAST_FUNCTION; function++) {
|
||||
if (function == 1 && reservedIDE)
|
||||
/* we have reserved this pci address */
|
||||
continue;
|
||||
|
||||
if (qemuDomainPCIAddressReserveFunction(addrs, 1, function) < 0)
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* First VGA is hardcoded slot=2 */
|
||||
if (def->nvideos > 0) {
|
||||
|
||||
Reference in New Issue
Block a user