diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 502c603c7b..b174672f56 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -220,6 +220,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, "machine-usb-opt", "tpm-passthrough", "tpm-tis", + + "query-tpm-models", /* 140 */ ); struct _virQEMUCaps { @@ -1962,6 +1964,8 @@ virQEMUCapsProbeQMPCommands(virQEMUCapsPtr qemuCaps, virQEMUCapsSet(qemuCaps, QEMU_CAPS_ADD_FD); else if (STREQ(name, "nbd-server-start")) virQEMUCapsSet(qemuCaps, QEMU_CAPS_NBD_SERVER); + else if (STREQ(name, "query-tpm-models")) + virQEMUCapsSet(qemuCaps, QEMU_CAPS_TPM_MODELS); VIR_FREE(name); } VIR_FREE(commands); @@ -2144,6 +2148,10 @@ virQEMUCapsProbeQMPTPM(virQEMUCapsPtr qemuCaps, { int nentries, i; char **entries = NULL; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_TPM_MODELS)) + return 0; + if ((nentries = qemuMonitorGetTPMModels(mon, &entries)) < 0) return -1; diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 728add5620..7a0f191a66 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -179,6 +179,7 @@ enum virQEMUCapsFlags { QEMU_CAPS_MACHINE_USB_OPT = 137, /* -machine xxx,usb=on/off */ QEMU_CAPS_DEVICE_TPM_PASSTHROUGH = 138, /* -tpmdev passthrough */ QEMU_CAPS_DEVICE_TPM_TIS = 139, /* -device tpm_tis */ + QEMU_CAPS_TPM_MODELS = 140, /* query-tpm-models QMP command */ QEMU_CAPS_LAST, /* this must always be the last item */ };