summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Privoznik <mprivozn@redhat.com>2023-05-15 14:06:59 +0200
committerMichal Privoznik <mprivozn@redhat.com>2023-05-16 17:43:03 +0200
commitc6c9b5d251de215ed378aa0bc31daa2e1170409e (patch)
treef488890f41e14cf00e9a8a02150121fa9b0efe39
parent1347a19f75a23b4d92e6a7b549fcde52b23f0258 (diff)
downloadlibvirt-c6c9b5d251de215ed378aa0bc31daa2e1170409e.tar.gz
qemu: Validate MTE feature
The MTE feature is not supported by all QEMUs, only those with QEMU_CAPS_MACHINE_VIRT_MTE capability. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
-rw-r--r--src/qemu/qemu_validate.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 99c7775e9b..da76556854 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -124,14 +124,23 @@ qemuValidateDomainDefFeatures(const virDomainDef *def,
case VIR_DOMAIN_FEATURE_GIC:
case VIR_DOMAIN_FEATURE_MTE:
- if (def->features[i] == VIR_TRISTATE_SWITCH_ON &&
- !qemuDomainIsARMVirt(def)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("The '%1$s' feature is not supported for architecture '%2$s' or machine type '%3$s'"),
- featureName,
- virArchToString(def->os.arch),
- def->os.machine);
- return -1;
+ if (def->features[i] != VIR_TRISTATE_SWITCH_ABSENT) {
+ if (!qemuDomainIsARMVirt(def)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("The '%1$s' feature is not supported for architecture '%2$s' or machine type '%3$s'"),
+ featureName,
+ virArchToString(def->os.arch),
+ def->os.machine);
+ return -1;
+ }
+
+ if (i == VIR_DOMAIN_FEATURE_MTE &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_MTE)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("The '%1$s' feature is not supported with this QEMU binary"),
+ featureName);
+ return -1;
+ }
}
break;