提交 d05da3fc 编写于 作者: L Laine Stump

bhyve: auto-assign addresses when <address type='pci'/> is specified

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.
上级 8f578716
......@@ -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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册