Current capability checks are specific to Intel IOMMU, so
we need to move them inside the switch() statement before
we can introduce more virDomainIOMMUModel values.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
src/qemu/qemu_command.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d5016cc99c..b2b9bef772 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6933,17 +6933,17 @@ qemuBuildIOMMUCommandLine(virCommandPtr cmd,
if (!iommu)
return 0;
- /* qemuDomainDeviceDefValidate() already made sure we have one of
- * QEMU_CAPS_DEVICE_INTEL_IOMMU or QEMU_CAPS_MACHINE_IOMMU: here we
- * handle the former case, while the latter is taken care of in
- * qemuBuildMachineCommandLine() */
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_INTEL_IOMMU))
- return 0;
-
switch (iommu->model) {
case VIR_DOMAIN_IOMMU_MODEL_INTEL: {
VIR_AUTOCLEAN(virBuffer) opts = VIR_BUFFER_INITIALIZER;
+ /* qemuDomainDeviceDefValidateIOMMU() already made sure we have
+ * one of QEMU_CAPS_DEVICE_INTEL_IOMMU or QEMU_CAPS_MACHINE_IOMMU:
+ * here we handle the former case, while the latter is taken care
+ * of in qemuBuildMachineCommandLine() */
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_INTEL_IOMMU))
+ return 0;
+
virBufferAddLit(&opts, "intel-iommu");
if (iommu->intremap != VIR_TRISTATE_SWITCH_ABSENT) {
virBufferAsprintf(&opts, ",intremap=%s",
@@ -7602,15 +7602,15 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
}
}
- /* qemuDomainDeviceDefValidate() already made sure we have one of
- * QEMU_CAPS_DEVICE_INTEL_IOMMU or QEMU_CAPS_MACHINE_IOMMU: here we
- * handle the latter case, while the former is taken care of in
- * qemuBuildIOMMUCommandLine() */
- if (def->iommu &&
- virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_IOMMU)) {
+ if (def->iommu) {
switch (def->iommu->model) {
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
- virBufferAddLit(&buf, ",iommu=on");
+ /* qemuDomainDeviceDefValidateIOMMU() already made sure we have
+ * one of QEMU_CAPS_DEVICE_INTEL_IOMMU or QEMU_CAPS_MACHINE_IOMMU:
+ * here we handle the latter case, while the former is taken care
+ * of in qemuBuildIOMMUCommandLine() */
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_IOMMU))
+ virBufferAddLit(&buf, ",iommu=on");
break;
case VIR_DOMAIN_IOMMU_MODEL_LAST:
default:
--
2.21.0