diff options
author | Michal Privoznik <mprivozn@redhat.com> | 2023-05-15 14:06:59 +0200 |
---|---|---|
committer | Michal Privoznik <mprivozn@redhat.com> | 2023-05-16 17:43:03 +0200 |
commit | c6c9b5d251de215ed378aa0bc31daa2e1170409e (patch) | |
tree | f488890f41e14cf00e9a8a02150121fa9b0efe39 | |
parent | 1347a19f75a23b4d92e6a7b549fcde52b23f0258 (diff) | |
download | libvirt-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.c | 25 |
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; |