diff options
author | Wanpeng Li <wanpeng.li@hotmail.com> | 2015-09-14 17:38:51 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-09-14 17:07:04 +0200 |
commit | edb9272f35d8bc97c86101a13f67d0ba16f3eecc (patch) | |
tree | 02b2eace7cc485ebdfe2363d8a53940bf6a9c31a /virt | |
parent | 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f (diff) | |
download | linux-edb9272f35d8bc97c86101a13f67d0ba16f3eecc.tar.gz linux-edb9272f35d8bc97c86101a13f67d0ba16f3eecc.tar.bz2 linux-edb9272f35d8bc97c86101a13f67d0ba16f3eecc.zip |
KVM: fix polling for guest halt continued even if disable it
If there is already some polling ongoing, it's impossible to disable the
polling, since as soon as somebody sets halt_poll_ns to 0, polling will
never stop, as grow and shrink are only handled if halt_poll_ns is != 0.
This patch fix it by reset vcpu->halt_poll_ns in order to stop polling
when polling is disabled.
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt')
-rw-r--r-- | virt/kvm/kvm_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index a25a73147f71..eb4c9d2849dc 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -2043,7 +2043,8 @@ out: else if (vcpu->halt_poll_ns < halt_poll_ns && block_ns < halt_poll_ns) grow_halt_poll_ns(vcpu); - } + } else + vcpu->halt_poll_ns = 0; trace_kvm_vcpu_wakeup(block_ns, waited); } |