[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 4/6] kvm/x86: Hyper-V fix SynIC timer disabling c
From: |
Andrey Smetanin |
Subject: |
[Qemu-devel] [PATCH v1 4/6] kvm/x86: Hyper-V fix SynIC timer disabling condition |
Date: |
Wed, 23 Dec 2015 14:28:39 +0300 |
Hypervisor Function Specification(HFS) doesn't require
to disable SynIC timer at timer config write if timer->count = 0.
So drop this check, this allow to load timers MSR's
during migration restore, because config are set before count
in QEMU side.
Also fix condition according to HFS doc(15.3.1):
"It is not permitted to set the SINTx field to zero for an
enabled timer. If attempted, the timer will be
marked disabled (that is, bit 0 cleared) immediately."
Signed-off-by: Andrey Smetanin <address@hidden>
Reviewed-by: Roman Kagan <address@hidden>
CC: Gleb Natapov <address@hidden>
CC: Paolo Bonzini <address@hidden>
CC: Roman Kagan <address@hidden>
CC: Denis V. Lunev <address@hidden>
CC: address@hidden
---
arch/x86/kvm/hyperv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index ce17529..b203ce3 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -472,7 +472,7 @@ static int stimer_start(struct kvm_vcpu_hv_stimer *stimer)
static int stimer_set_config(struct kvm_vcpu_hv_stimer *stimer, u64 config,
bool host)
{
- if (stimer->count == 0 || HV_STIMER_SINT(config) == 0)
+ if ((stimer->config & HV_STIMER_ENABLE) && HV_STIMER_SINT(config) == 0)
config &= ~HV_STIMER_ENABLE;
stimer->config = config;
stimer_cleanup(stimer);
--
2.4.3
- [Qemu-devel] [PATCH v1 0/6] KVM: Hyper-V SynIC timers migration fixes, Andrey Smetanin, 2015/12/23
- [Qemu-devel] [PATCH v1 1/6] kvm/x86: Drop stimer_stop() function, Andrey Smetanin, 2015/12/23
- [Qemu-devel] [PATCH v1 3/6] kvm/x86: Reorg stimer_expiration() to better control timer restart, Andrey Smetanin, 2015/12/23
- [Qemu-devel] [PATCH v1 4/6] kvm/x86: Hyper-V fix SynIC timer disabling condition,
Andrey Smetanin <=
- [Qemu-devel] [PATCH v1 5/6] kvm/x86: Skip SynIC vector check for QEMU side, Andrey Smetanin, 2015/12/23
- [Qemu-devel] [PATCH v1 6/6] kvm/x86: Update SynIC timers on guest entry only, Andrey Smetanin, 2015/12/23
- [Qemu-devel] [PATCH v1 2/6] kvm/x86: Hyper-V unify stimer_start() and stimer_restart(), Andrey Smetanin, 2015/12/23