提交 21bb887a 编写于 作者: A Andrea Bolognani

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: NAndrea Bolognani <abologna@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 70cdf1b5
......@@ -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:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册