Re: [PATCH 04/16] ARM: KVM: vgic: fix another batch of hardcoded irq numbers

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

 



On Fri, Dec 14, 2012 at 5:14 AM, Marc Zyngier <marc.zyngier@xxxxxxx> wrote:
> On 13/12/12 21:52, Christoffer Dall wrote:
>>
>>
>> On Thursday, December 6, 2012, Marc Zyngier wrote:
>>
>>     Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx <javascript:;>>
>>     ---
>>      arch/arm/kvm/arm.c | 4 ++--
>>      1 file changed, 2 insertions(+), 2 deletions(-)
>>
>>     diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
>>     index 5dcc740..4d4da72 100644
>>     --- a/arch/arm/kvm/arm.c
>>     +++ b/arch/arm/kvm/arm.c
>>     @@ -833,7 +833,7 @@ int kvm_vm_ioctl_irq_line(struct kvm *kvm,
>>     struct kvm_irq_level *irq_level)
>>                     if (!irqchip_in_kernel(kvm))
>>                             return -ENXIO;
>>
>>     -               if (irq_num < 16 || irq_num > 31)
>>     +               if (irq_num < VGIC_NR_PPIS || irq_num >=
>>     VGIC_NR_PRIVATE_IRQS)
>>
>>
>> Shouldn't this be VGIC_NR_SGIS ?
>
> VGIC_NR_SGIS is what's written on the tin: the number of SGIs (16).
> This piece of code checks that we have a valid PPI number (between 16
> and 31). So VGIC_NR_PRIVATE_IRQS (16 + 16) is the right check.
>

I mean the check "irq_num < VGIC_NR_PPIS" - that's counter intuitive
even though both defined are 16, but really you're checking if is the
user passed an SGI irq number, correct?

>>
>>
>>                             return -EINVAL;
>>
>>                     return kvm_vgic_inject_irq(kvm, vcpu->vcpu_id,
>>     irq_num, level);
>>     @@ -841,7 +841,7 @@ int kvm_vm_ioctl_irq_line(struct kvm *kvm,
>>     struct kvm_irq_level *irq_level)
>>                     if (!irqchip_in_kernel(kvm))
>>                             return -ENXIO;
>>
>>     -               if (irq_num < 32 || irq_num > KVM_ARM_IRQ_GIC_MAX)
>>     +               if (irq_num < VGIC_NR_PRIVATE_IRQS || irq_num >
>>     KVM_ARM_IRQ_GIC_MAX)
>>                             return -EINVAL;
>>
>>                     return kvm_vgic_inject_irq(kvm, 0, irq_num, level);
>>     --
>>     1.8.0.1
>>
>>
>>
>>     _______________________________________________
>>     kvmarm mailing list
>>     kvmarm@xxxxxxxxxxxxxxxxxxxxx <javascript:;>
>>     https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm
>>
>
>
> --
> Jazz is not dead. It just smells funny...
>
_______________________________________________
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