
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@linux.vnet.ibm.com> --- 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@redhat.com>