KVM: PIT: take inject_pending into account when emulating hlt
authorMarcelo Tosatti <mtosatti@redhat.com>
Tue, 6 May 2008 16:32:54 +0000 (13:32 -0300)
committerAvi Kivity <avi@qumranet.com>
Sun, 18 May 2008 11:34:15 +0000 (14:34 +0300)
Otherwise hlt emulation fails if PIT is not injecting IRQ's.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/x86/kvm/i8254.c

index 3324d90038e438ab1361d53f31be78948d72aba8..7c077a9d97770c8faee45123b9c049eeb8b33465 100644 (file)
@@ -216,7 +216,7 @@ int pit_has_pending_timer(struct kvm_vcpu *vcpu)
 {
        struct kvm_pit *pit = vcpu->kvm->arch.vpit;
 
-       if (pit && vcpu->vcpu_id == 0)
+       if (pit && vcpu->vcpu_id == 0 && pit->pit_state.inject_pending)
                return atomic_read(&pit->pit_state.pit_timer.pending);
 
        return 0;