On Wed, Nov 21, 2012 at 1:15 PM, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: > The elrsr registers should only be used when synchronizing the > vgic state after running. It shouldn't be trusted in another > context. > > Use lr_used instead, which tracks the LR allocation. > > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > --- > arch/arm/kvm/vgic.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/arm/kvm/vgic.c b/arch/arm/kvm/vgic.c > index 57929db..581faf2 100644 > --- a/arch/arm/kvm/vgic.c > +++ b/arch/arm/kvm/vgic.c > @@ -738,7 +738,7 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq) > } > > /* Try to use another LR for this interrupt */ > - lr = find_first_bit((unsigned long *)vgic_cpu->vgic_elrsr, > + lr = find_first_zero_bit((unsigned long *)vgic_cpu->lr_used, > vgic_cpu->nr_lr); > if (lr >= vgic_cpu->nr_lr) > return false; > @@ -751,7 +751,6 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq) > } > > vgic_cpu->vgic_irq_lr_map[irq] = lr; > - clear_bit(lr, (unsigned long *)vgic_cpu->vgic_elrsr); > set_bit(lr, vgic_cpu->lr_used); > > return true; > -- > 1.7.12 > > looks good. Applied, thanks. _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm