diff options
author | Sheng Yang <sheng@linux.intel.com> | 2008-10-15 14:15:06 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2008-10-28 13:21:34 +0100 |
commit | 5550af4df179e52753d3a43a788a113ad8cd95cd (patch) | |
tree | f19274a4f7e345e70e7da713f44c1dcccdb134e8 /arch/x86/kvm/i8254.h | |
parent | KVM: MMU: sync root on paravirt TLB flush (diff) | |
download | linux-5550af4df179e52753d3a43a788a113ad8cd95cd.tar.xz linux-5550af4df179e52753d3a43a788a113ad8cd95cd.zip |
KVM: Fix guest shared interrupt with in-kernel irqchip
Every call of kvm_set_irq() should offer an irq_source_id, which is
allocated by kvm_request_irq_source_id(). Based on irq_source_id, we
identify the irq source and implement logical OR for shared level
interrupts.
The allocated irq_source_id can be freed by kvm_free_irq_source_id().
Currently, we support at most sizeof(unsigned long) different irq sources.
[Amit: - rebase to kvm.git HEAD
- move definition of KVM_USERSPACE_IRQ_SOURCE_ID to common file
- move kvm_request_irq_source_id to the update_irq ioctl]
[Xiantao: - Add kvm/ia64 stuff and make it work for kvm/ia64 guests]
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/i8254.h')
-rw-r--r-- | arch/x86/kvm/i8254.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/i8254.h b/arch/x86/kvm/i8254.h index e436d4983aa1..4178022b97aa 100644 --- a/arch/x86/kvm/i8254.h +++ b/arch/x86/kvm/i8254.h @@ -44,6 +44,7 @@ struct kvm_pit { struct kvm_io_device speaker_dev; struct kvm *kvm; struct kvm_kpit_state pit_state; + int irq_source_id; }; #define KVM_PIT_BASE_ADDRESS 0x40 |