[libvirt] [PATCH] Check for QMP query-tpm-models

Stefan Berger stefanb at linux.vnet.ibm.com
Mon Apr 15 19:49:46 UTC 2013


Check for QMP query-tpm-models and set a capability flag. Do not use
this QMP command if it is not supported.

Signed-off-by: Stefan Berger <stefanb at linux.vnet.ibm.com>

---
  src/qemu/qemu_capabilities.c |    8 ++++++++
  src/qemu/qemu_capabilities.h |    1 +
  2 files changed, 9 insertions(+)

Index: libvirt/src/qemu/qemu_capabilities.h
===================================================================
--- libvirt.orig/src/qemu/qemu_capabilities.h
+++ libvirt/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 */
  };
Index: libvirt/src/qemu/qemu_capabilities.c
===================================================================
--- libvirt.orig/src/qemu/qemu_capabilities.c
+++ libvirt/src/qemu/qemu_capabilities.c
@@ -220,6 +220,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAS
                "machine-usb-opt",
                "tpm-passthrough",
                "tpm-tis",
+
+              "query-tpm-models", /* 140 */
      );

  struct _virQEMUCaps {
@@ -1962,6 +1964,8 @@ virQEMUCapsProbeQMPCommands(virQEMUCapsP
              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 qe
  {
      int nentries, i;
      char **entries = NULL;
+
+    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_TPM_MODELS))
+        return 0;
+
      if ((nentries = qemuMonitorGetTPMModels(mon, &entries)) < 0)
          return -1;




More information about the libvir-list mailing list