Skip to content

Commit 23a3b20

Browse files
Andrey Smetaninbonzini
authored andcommitted
kvm/x86: Hyper-V fix SynIC timer disabling condition
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 <asmetanin@virtuozzo.com> Reviewed-by: Roman Kagan <rkagan@virtuozzo.com> CC: Gleb Natapov <gleb@kernel.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Roman Kagan <rkagan@virtuozzo.com> CC: Denis V. Lunev <den@openvz.org> CC: qemu-devel@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
1 parent 0cdeabb commit 23a3b20

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/x86/kvm/hyperv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ static int stimer_start(struct kvm_vcpu_hv_stimer *stimer)
474474
static int stimer_set_config(struct kvm_vcpu_hv_stimer *stimer, u64 config,
475475
bool host)
476476
{
477-
if (stimer->count == 0 || HV_STIMER_SINT(config) == 0)
477+
if ((stimer->config & HV_STIMER_ENABLE) && HV_STIMER_SINT(config) == 0)
478478
config &= ~HV_STIMER_ENABLE;
479479
stimer->config = config;
480480
stimer_cleanup(stimer);

0 commit comments

Comments
 (0)