On 03/20/2017 04:12 AM, Jiri Denemark wrote:
Calling virCPUUpdateLive on a domain with no guest CPU configuration
does not make sense. Especially when doing so would crash libvirtd.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_process.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
ACK. This fixed the crash for me.
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 780f9587a..ec0e36d2e 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -3815,11 +3815,6 @@ qemuProcessVerifyCPUFeatures(virDomainDefPtr def,
{
int rc;
- if (!def->cpu ||
- (def->cpu->mode == VIR_CPU_MODE_CUSTOM &&
- !def->cpu->model))
- return 0;
-
rc = virCPUCheckFeature(def->os.arch, def->cpu, "invtsc");
if (rc < 0) {
@@ -3870,6 +3865,13 @@ qemuProcessUpdateLiveGuestCPU(virQEMUDriverPtr driver,
qemuProcessVerifyHypervFeatures(def, cpu) < 0)
goto cleanup;
+ if (!def->cpu ||
+ (def->cpu->mode == VIR_CPU_MODE_CUSTOM &&
+ !def->cpu->model)) {
+ ret = 0;
+ goto cleanup;
+ }
+
if (qemuProcessVerifyCPUFeatures(def, cpu) < 0)
goto cleanup;