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 |
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.
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 --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);
__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(-)