KVM: Remove irq_pending bitmap
Only one interrupt vector can be injected from userspace irqchip at any given time so no need to store it in a bitmap. Put it into interrupt queue directly. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
@ -19,18 +19,6 @@ static inline void kvm_clear_interrupt_queue(struct kvm_vcpu *vcpu)
|
||||
vcpu->arch.interrupt.pending = false;
|
||||
}
|
||||
|
||||
static inline u8 kvm_pop_irq(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
int word_index = __ffs(vcpu->arch.irq_summary);
|
||||
int bit_index = __ffs(vcpu->arch.irq_pending[word_index]);
|
||||
int irq = word_index * BITS_PER_LONG + bit_index;
|
||||
|
||||
clear_bit(bit_index, &vcpu->arch.irq_pending[word_index]);
|
||||
if (!vcpu->arch.irq_pending[word_index])
|
||||
clear_bit(word_index, &vcpu->arch.irq_summary);
|
||||
return irq;
|
||||
}
|
||||
|
||||
static inline bool kvm_event_needs_reinjection(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
return vcpu->arch.exception.pending || vcpu->arch.interrupt.pending ||
|
||||
|
Reference in New Issue
Block a user