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) {
}
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:
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:
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,