diff mbox series

irqchip/bcm2836: Fix return check in IPI alloc

Message ID 20201228223014.3253924-1-adam@l4re.org (mailing list archive)
State New, archived
Headers show
Series irqchip/bcm2836: Fix return check in IPI alloc | expand

Commit Message

Adam Lackorzynski Dec. 28, 2020, 10:30 p.m. UTC
__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@l4re.org>
---
 drivers/irqchip/irq-bcm2836.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Marc Zyngier Dec. 29, 2020, 9:31 a.m. UTC | #1
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@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.

         M.
Adam Lackorzynski Dec. 29, 2020, 11:16 p.m. UTC | #2
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@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
diff mbox series

Patch

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))
 		return;
 
 	set_smp_ipi_range(base_ipi, BITS_PER_MBOX);