On Wed, Apr 22, 2020 at 17:50:44 -0400, Tobin Feldman-Fitzthum wrote: > Add virQEMUCapsProbeQMPTCGState to set TCG_DISABLED cap if version > is > 2.10, KVM is enabled, and tcg-accel is not present in > qom-list-types result. > > Signed-off-by: Tobin Feldman-Fitzthum <tobin@xxxxxxxxxxxxxxxxxx> > --- > src/qemu/qemu_capabilities.c | 34 ++++++++++++++++++++++++++++++++-- > 1 file changed, 32 insertions(+), 2 deletions(-) I don't feel comfortable reviewing the other two patches which deal with the actual use of the capability, so I'll leave those for somebody else. > diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c > index e7179ea048..4a3170fc5c 100644 > --- a/src/qemu/qemu_capabilities.c > +++ b/src/qemu/qemu_capabilities.c > @@ -2576,7 +2576,35 @@ virQEMUCapsProbeQMPGenericProps(virQEMUCapsPtr qemuCaps, > } > > static int > -virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps, > +virQEMUCapsProbeQMPTCGState(virQEMUCapsPtr qemuCaps, Returned value of the new function is not used, so please define it as 'void' > + char **values, > + int nvalues) > +{ > + size_t i; > + bool found = false; > + /* > + * As of version 2.10, QEMU can be built without the TCG. > + * */ > + if (qemuCaps->version < 2010000) > + return 0; > + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) > + return 0; > + > + for (i = 0; i < nvalues; i++) { > + if (STREQ(values[i], "tcg-accel")) { > + found = true; You can set the capability here without intermediate variable and just return. > + break; > + } > + } > + > + if (!found) > + virQEMUCapsSet(qemuCaps, QEMU_CAPS_TCG_DISABLED); > + > + return 0; > +} > + > +static int > +virQEMUCapsProbeQMPTypes(virQEMUCapsPtr qemuCaps, > qemuMonitorPtr mon) > { > int nvalues; With the above resolved: Reviewed-by: Peter Krempa <pkrempa@xxxxxxxxxx>