From feab40c14a506f1e5ac3adab69544ddc90be78de Mon Sep 17 00:00:00 2001 From: panhengchang Date: Mon, 14 Apr 2025 12:42:00 +0800 Subject: [PATCH 1/2] modify return code if qemu not support virtcca --- src/qemu/qemu_monitor_json.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 6fc6afea30..e00768c3e5 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6166,12 +6166,9 @@ qemuMonitorJSONGetVIRTCCACapabilities(qemuMonitor *mon, if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) return -1; - /* QEMU has only compiled-in support of VIRTCCA */ - if (qemuMonitorJSONHasError(reply, "GenericError")) - return 0; - + /* QEMU not support VIRTCCA */ if (qemuMonitorJSONCheckError(cmd, reply) < 0) - return -1; + return 0; caps = virJSONValueObjectGetObject(reply, "return"); -- Gitee From 5730ca314f8f4c3d795e31ad2984cf61e3db8b82 Mon Sep 17 00:00:00 2001 From: panhengchang Date: Mon, 14 Apr 2025 18:05:12 +0800 Subject: [PATCH 2/2] fix code error of virtcca detection --- src/conf/domain_capabilities.c | 1 + src/qemu/qemu_capabilities.c | 4 ++-- src/qemu/qemu_capabilities.h | 2 +- src/qemu/qemu_monitor.h | 2 +- src/qemu/qemu_monitor_json.h | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index f390ad9fef..4a83777e9c 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -762,6 +762,7 @@ virDomainCapsFormatFeatures(const virDomainCaps *caps, virDomainCapsFeatureSEVFormat(&childBuf, caps->sev); virDomainCapsFeatureSGXFormat(&childBuf, caps->sgx); virDomainCapsFeatureHypervFormat(&childBuf, caps->hyperv); + virDomainCapsFeatureVIRTCCAFormat(&childBuf, caps->virtcca); virXMLFormatElement(buf, "features", NULL, &childBuf); } diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index e19e5a87c5..45b5248e28 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -699,7 +699,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "run-with.async-teardown", /* QEMU_CAPS_RUN_WITH_ASYNC_TEARDOWN */ "virtio-blk-vhost-vdpa", /* QEMU_CAPS_DEVICE_VIRTIO_BLK_VHOST_VDPA */ "smp-clusters", /* QEMU_CAPS_SMP_CLUSTERS */ - "virtcca", /* QEMU_CAPS_VIRTCCA */ + "tmm-guest", /* QEMU_CAPS_VIRTCCA */ ); @@ -1390,7 +1390,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = { { "virtio-crypto-device", QEMU_CAPS_DEVICE_VIRTIO_CRYPTO }, { "cryptodev-backend-lkcf", QEMU_CAPS_OBJECT_CRYPTO_LKCF }, { "pvpanic-pci", QEMU_CAPS_DEVICE_PANIC_PCI }, - { "virtcca", QEMU_CAPS_VIRTCCA }, + { "tmm-guest", QEMU_CAPS_VIRTCCA }, }; diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 32ac2573e6..0d70183027 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -678,7 +678,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_RUN_WITH_ASYNC_TEARDOWN, /* asynchronous teardown -run-with async-teardown=on|off */ QEMU_CAPS_DEVICE_VIRTIO_BLK_VHOST_VDPA, /* virtio-blk-vhost-vdpa block driver */ QEMU_CAPS_SMP_CLUSTERS, /* -smp clusters= */ - QEMU_CAPS_VIRTCCA, /* kvm-type=cvm */ + QEMU_CAPS_VIRTCCA, /* tmm-guest */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 6c57a79777..6c6e18da50 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -850,7 +850,7 @@ int qemuMonitorGetSGXCapabilities(qemuMonitor *mon, virSGXCapability **capabilities); int qemuMonitorGetVIRTCCACapabilities(qemuMonitor *mon, - virVIRTCCACapability **capabilities) + virVIRTCCACapability **capabilities); typedef enum { QEMU_MONITOR_MIGRATE_RESUME = 1 << 0, /* resume failed post-copy migration */ diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index 8f5c25d015..2e0f2e2594 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -170,7 +170,7 @@ qemuMonitorJSONGetSEVCapabilities(qemuMonitor *mon, int qemuMonitorJSONGetVIRTCCACapabilities(qemuMonitor *mon, - virVIRTCCACapability **capabilities) + virVIRTCCACapability **capabilities); int qemuMonitorJSONMigrate(qemuMonitor *mon, -- Gitee