]> xenbits.xensource.com Git - libvirt.git/commitdiff
bhyve: auto-assign addresses when <address type='pci'/> is specified
authorLaine Stump <laine@laine.org>
Tue, 17 May 2016 18:06:36 +0000 (14:06 -0400)
committerLaine Stump <laine@laine.org>
Fri, 20 May 2016 17:54:26 +0000 (13:54 -0400)
Rather than only assigning a PCI address when no address is given at
all, also do it when the config says that the address type is 'pci',
but it gives no address.

src/bhyve/bhyve_device.c

index 3eb2956580163ae65712bd781783b0bf6eab4bef..8373a5f2c3f0386ee09efb1c1482753683109a82 100644 (file)
@@ -98,7 +98,7 @@ bhyveAssignDevicePCISlots(virDomainDefPtr def,
         goto error;
 
     for (i = 0; i < def->nnets; i++) {
-        if (def->nets[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE)
+        if (!virDeviceInfoPCIAddressWanted(&def->nets[i]->info))
             continue;
         if (virDomainPCIAddressReserveNextSlot(addrs,
                                                &def->nets[i]->info,
@@ -107,8 +107,7 @@ bhyveAssignDevicePCISlots(virDomainDefPtr def,
     }
 
     for (i = 0; i < def->ndisks; i++) {
-        if (def->disks[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
-            def->disks[i]->info.addr.pci.slot != 0)
+        if (!virDeviceInfoPCIAddressWanted(&def->disks[i]->info))
             continue;
         if (virDomainPCIAddressReserveNextSlot(addrs,
                                                &def->disks[i]->info,
@@ -118,9 +117,8 @@ bhyveAssignDevicePCISlots(virDomainDefPtr def,
 
     for (i = 0; i < def->ncontrollers; i++) {
         if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) {
-            if (def->controllers[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE)
-                continue;
-            if (def->controllers[i]->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT)
+            if (def->controllers[i]->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT ||
+                !virDeviceInfoPCIAddressWanted(&def->controllers[i]->info))
                 continue;
 
             if (virDomainPCIAddressReserveNextSlot(addrs,