diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2008-07-26 16:01:00 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-10-15 04:15:16 -0400 |
commit | f52447261bc8c21dfd4635196e32d2da1352f589 (patch) | |
tree | a0de6cefa7fbfdd07285bd60c4f61e4e2f2d4ed6 /arch/x86/kvm/irq.h | |
parent | 564f15378f04921d5749f27ec53d5e68a6d1d446 (diff) |
KVM: irq ack notification
Based on a patch from: Ben-Ami Yassour <benami@il.ibm.com>
which was based on a patch from: Amit Shah <amit.shah@qumranet.com>
Notify IRQ acking on PIC/APIC emulation. The previous patch missed two things:
- Edge triggered interrupts on IOAPIC
- PIC reset with IRR/ISR set should be equivalent to ack (LAPIC probably
needs something similar).
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
CC: Amit Shah <amit.shah@qumranet.com>
CC: Ben-Ami Yassour <benami@il.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86/kvm/irq.h')
-rw-r--r-- | arch/x86/kvm/irq.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h index 95fe718e3abc..479a3d2d5614 100644 --- a/arch/x86/kvm/irq.h +++ b/arch/x86/kvm/irq.h | |||
@@ -63,11 +63,12 @@ struct kvm_pic { | |||
63 | void *irq_request_opaque; | 63 | void *irq_request_opaque; |
64 | int output; /* intr from master PIC */ | 64 | int output; /* intr from master PIC */ |
65 | struct kvm_io_device dev; | 65 | struct kvm_io_device dev; |
66 | void (*ack_notifier)(void *opaque, int irq); | ||
66 | }; | 67 | }; |
67 | 68 | ||
68 | struct kvm_pic *kvm_create_pic(struct kvm *kvm); | 69 | struct kvm_pic *kvm_create_pic(struct kvm *kvm); |
69 | void kvm_pic_set_irq(void *opaque, int irq, int level); | 70 | void kvm_pic_set_irq(void *opaque, int irq, int level); |
70 | int kvm_pic_read_irq(struct kvm_pic *s); | 71 | int kvm_pic_read_irq(struct kvm *kvm); |
71 | void kvm_pic_update_irq(struct kvm_pic *s); | 72 | void kvm_pic_update_irq(struct kvm_pic *s); |
72 | 73 | ||
73 | static inline struct kvm_pic *pic_irqchip(struct kvm *kvm) | 74 | static inline struct kvm_pic *pic_irqchip(struct kvm *kvm) |