[PATCH] irqchip/bcm2836: Fix return check in IPI alloc

Adam Lackorzynski adam at l4re.org
Tue Dec 29 18:16:03 EST 2020


On Tue Dec 29, 2020 at 09:31:34 +0000, Marc Zyngier wrote:
> On 2020-12-28 22:30, Adam Lackorzynski wrote:
> > __irq_domain_alloc_irqs returns a negative error
> > code upon failure, not only 0. Also use irq_domain_alloc_irqs
> > to require less default arguments.
> > 
> > Signed-off-by: Adam Lackorzynski <adam at l4re.org>
> > ---
> >  drivers/irqchip/irq-bcm2836.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/irqchip/irq-bcm2836.c
> > b/drivers/irqchip/irq-bcm2836.c
> > index 5f5eb8877c41..853fd420ab2b 100644
> > --- a/drivers/irqchip/irq-bcm2836.c
> > +++ b/drivers/irqchip/irq-bcm2836.c
> > @@ -268,11 +268,10 @@ static void __init
> > bcm2836_arm_irqchip_smp_init(void)
> >  	ipi_domain->flags |= IRQ_DOMAIN_FLAG_IPI_SINGLE;
> >  	irq_domain_update_bus_token(ipi_domain, DOMAIN_BUS_IPI);
> > 
> > -	base_ipi = __irq_domain_alloc_irqs(ipi_domain, -1, BITS_PER_MBOX,
> > -					   NUMA_NO_NODE, NULL,
> > -					   false, NULL);
> > +	base_ipi = irq_domain_alloc_irqs(ipi_domain, BITS_PER_MBOX,
> > +					 NUMA_NO_NODE, NULL);
> > 
> > -	if (WARN_ON(!base_ipi))
> > +	if (WARN_ON(base_ipi < 0))
> 
> This is wrong. 0 isn't a valid IRQ number, and should be rejected.

Thanks, I'll follow up with new versions for more callers.



Adam



More information about the linux-arm-kernel mailing list