Re: [PATCH 07/10] ARM: KVM: vgic: do not use elrsr when queueing an interrupt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux