diff options
author | John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> | 2023-05-10 18:33:42 +0200 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2023-06-17 08:54:48 +0200 |
commit | 4848229494a323eeaab62eee5574ef9f7de80374 (patch) | |
tree | b8062085ece88d8b61af78e8d9d0c0a3f89b0df8 /drivers/irqchip | |
parent | irqchip/stm32-exti: Fix warning on initialized field overwritten (diff) | |
download | linux-4848229494a323eeaab62eee5574ef9f7de80374.tar.xz linux-4848229494a323eeaab62eee5574ef9f7de80374.zip |
irqchip/jcore-aic: Fix missing allocation of IRQ descriptors
The initialization function for the J-Core AIC aic_irq_of_init() is
currently missing the call to irq_alloc_descs() which allocates and
initializes all the IRQ descriptors. Add missing function call and
return the error code from irq_alloc_descs() in case the allocation
fails.
Fixes: 981b58f66cfc ("irqchip/jcore-aic: Add J-Core AIC driver")
Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Tested-by: Rob Landley <rob@landley.net>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230510163343.43090-1-glaubitz@physik.fu-berlin.de
Diffstat (limited to 'drivers/irqchip')
-rw-r--r-- | drivers/irqchip/irq-jcore-aic.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-jcore-aic.c b/drivers/irqchip/irq-jcore-aic.c index 5f47d8ee4ae3..b9dcc8e78c75 100644 --- a/drivers/irqchip/irq-jcore-aic.c +++ b/drivers/irqchip/irq-jcore-aic.c @@ -68,6 +68,7 @@ static int __init aic_irq_of_init(struct device_node *node, unsigned min_irq = JCORE_AIC2_MIN_HWIRQ; unsigned dom_sz = JCORE_AIC_MAX_HWIRQ+1; struct irq_domain *domain; + int ret; pr_info("Initializing J-Core AIC\n"); @@ -100,6 +101,12 @@ static int __init aic_irq_of_init(struct device_node *node, jcore_aic.irq_unmask = noop; jcore_aic.name = "AIC"; + ret = irq_alloc_descs(-1, min_irq, dom_sz - min_irq, + of_node_to_nid(node)); + + if (ret < 0) + return ret; + domain = irq_domain_add_legacy(node, dom_sz - min_irq, min_irq, min_irq, &jcore_aic_irqdomain_ops, &jcore_aic); |