On Tue, Oct 15, 2019 at 05:34:45PM +0200, Jiri Denemark wrote:
The function would return a valid virDomainCapsCPUModelsPtr with
empty
CPU models list if query-cpu-definitions exists in QEMU, but returns
GenericError meaning it's not in fact implemented. This behaviour is a
bit strange especially after such virDomainCapsCPUModels structure is
stored in capabilities XML and parsed back, which will result in NULL
virDomainCapsCPUModelsPtr rather than a structure containing nothing.
Let's just keep virDomainCapsCPUModelsPtr NULL if the QMP command is not
implemented and change the return value to int so that callers can
easily check for failure or success.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
Notes:
Version 2:
- new patch
src/qemu/qemu_capabilities.c | 34 +++++++++++++++++++++-------------
src/qemu/qemu_capabilities.h | 5 +++--
src/qemu/qemu_process.c | 17 ++++++++++-------
3 files changed, 34 insertions(+), 22 deletions(-)
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
Your call whether you consider squashing in the following, since
VIR_STEAL_PTR still hasn't been eliminated:
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c8b3b65aad..8e0fae54d7 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2510,7 +2510,7 @@ virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon,
goto cleanup;
}
- VIR_STEAL_PTR(*cpuModels, models);
+ *cpuModels = g_steal_pointer(&models);
ret = 0;
cleanup: