qemu: Move capability checks inside switch() statements

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@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Andrea Bolognani 2019-05-28 12:49:32 +02:00
parent 70cdf1b52e
commit 21bb887abc

View File

@ -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: