Commit f349c12c0434e29c79ecde89029320c4002f7253 added the guest stop notification, but it did it in a way that the stop notification would never reach the kernel. The kvm_vm_state_changed() function gets a value of 0 for the 'running' parameter when the VM is stopped, making all the code added previously dead code.
This patch reworks the code so that it's called when 'running' is 0, which indicates the VM was stopped. CC: Eric B Munson <[email protected]> CC: Raghavendra K T <[email protected]> CC: Andreas Färber <[email protected]> CC: Marcelo Tosatti <[email protected]> CC: Paolo Bonzini <[email protected]> CC: Laszlo Ersek <[email protected]> Signed-off-by: Amit Shah <[email protected]> --- hw/kvm/clock.c | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) diff --git a/hw/kvm/clock.c b/hw/kvm/clock.c index 824b978..f3427eb 100644 --- a/hw/kvm/clock.c +++ b/hw/kvm/clock.c @@ -71,18 +71,19 @@ static void kvmclock_vm_state_change(void *opaque, int running, if (running) { s->clock_valid = false; + return; + } - if (!cap_clock_ctrl) { - return; - } - for (penv = first_cpu; penv != NULL; penv = penv->next_cpu) { - ret = kvm_vcpu_ioctl(penv, KVM_KVMCLOCK_CTRL, 0); - if (ret) { - if (ret != -EINVAL) { - fprintf(stderr, "%s: %s\n", __func__, strerror(-ret)); - } - return; + if (!cap_clock_ctrl) { + return; + } + for (penv = first_cpu; penv != NULL; penv = penv->next_cpu) { + ret = kvm_vcpu_ioctl(penv, KVM_KVMCLOCK_CTRL, 0); + if (ret) { + if (ret != -EINVAL) { + fprintf(stderr, "%s: %s\n", __func__, strerror(-ret)); } + return; } } } -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
