aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWanpeng Li <wanpeng.li@hotmail.com>2015-09-14 05:38:51 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2015-09-14 11:07:04 -0400
commitedb9272f35d8bc97c86101a13f67d0ba16f3eecc (patch)
tree02b2eace7cc485ebdfe2363d8a53940bf6a9c31a
parent6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f (diff)
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>
-rw-r--r--virt/kvm/kvm_main.c3
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:
2043 else if (vcpu->halt_poll_ns < halt_poll_ns && 2043 else if (vcpu->halt_poll_ns < halt_poll_ns &&
2044 block_ns < halt_poll_ns) 2044 block_ns < halt_poll_ns)
2045 grow_halt_poll_ns(vcpu); 2045 grow_halt_poll_ns(vcpu);
2046 } 2046 } else
2047 vcpu->halt_poll_ns = 0;
2047 2048
2048 trace_kvm_vcpu_wakeup(block_ns, waited); 2049 trace_kvm_vcpu_wakeup(block_ns, waited);
2049} 2050}