mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
qemu: Move GIC checks to qemuDomainDefValidateFeatures()
Keep them along with other arch/machine type checks for features instead of waiting until command line generation time. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
ce24802a6b
commit
f55fcb7e8f
@ -7175,13 +7175,6 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
|
||||
|
||||
if (def->features[VIR_DOMAIN_FEATURE_GIC] == VIR_TRISTATE_SWITCH_ON) {
|
||||
if (def->gic_version != VIR_GIC_VERSION_NONE) {
|
||||
if (!qemuDomainIsVirt(def)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("gic-version option is available "
|
||||
"only for ARM virt machine"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* The default GIC version (GICv2) should not be specified on
|
||||
* the QEMU commandline for backwards compatibility reasons */
|
||||
if (def->gic_version != VIR_GIC_VERSION_2) {
|
||||
|
@ -3347,6 +3347,19 @@ qemuDomainDefValidateFeatures(const virDomainDef *def)
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_FEATURE_GIC:
|
||||
if (def->features[i] == VIR_TRISTATE_SWITCH_ON &&
|
||||
!qemuDomainIsVirt(def)) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("The '%s' feature is not supported for "
|
||||
"architecture '%s' or machine type '%s'"),
|
||||
featureName,
|
||||
virArchToString(def->os.arch),
|
||||
def->os.machine);
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_FEATURE_ACPI:
|
||||
case VIR_DOMAIN_FEATURE_APIC:
|
||||
case VIR_DOMAIN_FEATURE_PAE:
|
||||
@ -3359,7 +3372,6 @@ qemuDomainDefValidateFeatures(const virDomainDef *def)
|
||||
case VIR_DOMAIN_FEATURE_CAPABILITIES:
|
||||
case VIR_DOMAIN_FEATURE_PMU:
|
||||
case VIR_DOMAIN_FEATURE_VMPORT:
|
||||
case VIR_DOMAIN_FEATURE_GIC:
|
||||
case VIR_DOMAIN_FEATURE_SMM:
|
||||
case VIR_DOMAIN_FEATURE_VMCOREINFO:
|
||||
case VIR_DOMAIN_FEATURE_LAST:
|
||||
|
@ -2660,12 +2660,12 @@ mymain(void)
|
||||
DO_TEST_PARSE_ERROR("aarch64-gic-invalid",
|
||||
QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT,
|
||||
QEMU_CAPS_MACH_VIRT_GIC_VERSION);
|
||||
DO_TEST_FAILURE("aarch64-gic-not-virt",
|
||||
QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT,
|
||||
QEMU_CAPS_MACH_VIRT_GIC_VERSION);
|
||||
DO_TEST_FAILURE("aarch64-gic-not-arm",
|
||||
QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT,
|
||||
QEMU_CAPS_MACH_VIRT_GIC_VERSION);
|
||||
DO_TEST_PARSE_ERROR("aarch64-gic-not-virt",
|
||||
QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT,
|
||||
QEMU_CAPS_MACH_VIRT_GIC_VERSION);
|
||||
DO_TEST_PARSE_ERROR("aarch64-gic-not-arm",
|
||||
QEMU_CAPS_KVM, QEMU_CAPS_MACHINE_OPT,
|
||||
QEMU_CAPS_MACH_VIRT_GIC_VERSION);
|
||||
DO_TEST("aarch64-kvm-32-on-64",
|
||||
QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
|
||||
QEMU_CAPS_DEVICE_PL011,
|
||||
|
Loading…
x
Reference in New Issue
Block a user