[PATCH 2/5] KVM: add a check to ensure grow start value is nonzero

From: Zhenzhong Duan
Date: Fri Oct 25 2019 - 23:25:13 EST


vcpu->halt_poll_ns could be zeroed in certain cases (e.g. by
halt_poll_ns_shrink). If halt_poll_ns_grow_start is zero,
vcpu->halt_poll_ns will never be larger than zero.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx>
---
virt/kvm/kvm_main.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 2ca2979..1b6fe3b 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -2266,6 +2266,13 @@ static void grow_halt_poll_ns(struct kvm_vcpu *vcpu)
goto out;

val *= grow;
+
+ /*
+ * vcpu->halt_poll_ns needs a nonzero start point to grow if it's zero.
+ */
+ if (!grow_start)
+ grow_start = 1;
+
if (val < grow_start)
val = grow_start;

--
1.8.3.1