diff options
author | Gleb Natapov <gleb@redhat.com> | 2011-02-09 05:09:46 -0500 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2011-03-17 12:08:30 -0400 |
commit | 7049467b5383432e178cc4124e53aebd83638916 (patch) | |
tree | 821003369bf041d8df42272d3b9f0c1d369b3625 /arch/x86/kvm/x86.c | |
parent | 23f3e99132aa5c5f887648c50597d8f2b5800417 (diff) |
KVM: remove isr_ack logic from PIC
isr_ack logic was added by e48258009d to avoid unnecessary IPIs. Back
then it made sense, but now the code checks that vcpu is ready to accept
interrupt before sending IPI, so this logic is no longer needed. The
patch removes it.
Fixes a regression with Debian/Hurd.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Reported-and-tested-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r-- | arch/x86/kvm/x86.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index d9855b8584cf..9000829d06cb 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -2669,8 +2669,6 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, | |||
2669 | vcpu->arch.interrupt.pending = events->interrupt.injected; | 2669 | vcpu->arch.interrupt.pending = events->interrupt.injected; |
2670 | vcpu->arch.interrupt.nr = events->interrupt.nr; | 2670 | vcpu->arch.interrupt.nr = events->interrupt.nr; |
2671 | vcpu->arch.interrupt.soft = events->interrupt.soft; | 2671 | vcpu->arch.interrupt.soft = events->interrupt.soft; |
2672 | if (vcpu->arch.interrupt.pending && irqchip_in_kernel(vcpu->kvm)) | ||
2673 | kvm_pic_clear_isr_ack(vcpu->kvm); | ||
2674 | if (events->flags & KVM_VCPUEVENT_VALID_SHADOW) | 2672 | if (events->flags & KVM_VCPUEVENT_VALID_SHADOW) |
2675 | kvm_x86_ops->set_interrupt_shadow(vcpu, | 2673 | kvm_x86_ops->set_interrupt_shadow(vcpu, |
2676 | events->interrupt.shadow); | 2674 | events->interrupt.shadow); |
@@ -5621,8 +5619,6 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu, | |||
5621 | if (pending_vec < max_bits) { | 5619 | if (pending_vec < max_bits) { |
5622 | kvm_queue_interrupt(vcpu, pending_vec, false); | 5620 | kvm_queue_interrupt(vcpu, pending_vec, false); |
5623 | pr_debug("Set back pending irq %d\n", pending_vec); | 5621 | pr_debug("Set back pending irq %d\n", pending_vec); |
5624 | if (irqchip_in_kernel(vcpu->kvm)) | ||
5625 | kvm_pic_clear_isr_ack(vcpu->kvm); | ||
5626 | } | 5622 | } |
5627 | 5623 | ||
5628 | kvm_set_segment(vcpu, &sregs->cs, VCPU_SREG_CS); | 5624 | kvm_set_segment(vcpu, &sregs->cs, VCPU_SREG_CS); |