Another example of using a literal rather than the controller's alias
in qemuBuildDeviceAddressStr(). In the past this was necessary because
the pci controllers on non-multibus capable machinetypes had incorrect
aliases; that problem is now fixed in
qemuAssignDeviceControllerAlias() so we can eliminate the extra code
here.
---
This is new in V2. It will be merged into 3/9 before pushing, but is
split out here for easy review.
src/qemu/qemu_command.c | 31 ++++++++-----------------------
1 file changed, 8 insertions(+), 23 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index a3413ee..4c7c2b2 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2664,30 +2664,15 @@ qemuBuildDeviceAddressStr(virBufferPtr buf,
}
}
- /*
- * PCI bridge support is required for multiple buses
- * 'pci.%u' is the ID of the bridge as specified in
- * qemuBuildControllerDevStr
- *
- * PCI_MULTIBUS capability indicates that the implicit
- * PCI bus is named 'pci.0' instead of 'pci'.
- */
- if (info->addr.pci.bus != 0) {
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PCI_BRIDGE)) {
- virBufferAsprintf(buf, ",bus=%s", contAlias);
- } else {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Multiple PCI buses are not supported "
- "with this QEMU binary"));
- goto cleanup;
- }
- } else {
- if (virQEMUCapsHasPCIMultiBus(qemuCaps, domainDef)) {
- virBufferAsprintf(buf, ",bus=%s", contAlias);
- } else {
- virBufferAddLit(buf, ",bus=pci");
- }
+ if (info->addr.pci.bus != 0 &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PCI_BRIDGE)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Multiple PCI buses are not supported "
+ "with this QEMU binary"));
+ goto cleanup;
}
+ virBufferAsprintf(buf, ",bus=%s", contAlias);
+
if (info->addr.pci.multi == VIR_TRISTATE_SWITCH_ON)
virBufferAddLit(buf, ",multifunction=on");
else if (info->addr.pci.multi == VIR_TRISTATE_SWITCH_OFF)
--
2.1.0