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: 981b58f66c
("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
This commit is contained in:
parent
48f31e4964
commit
4848229494
|
@ -68,6 +68,7 @@ static int __init aic_irq_of_init(struct device_node *node,
|
||||||
unsigned min_irq = JCORE_AIC2_MIN_HWIRQ;
|
unsigned min_irq = JCORE_AIC2_MIN_HWIRQ;
|
||||||
unsigned dom_sz = JCORE_AIC_MAX_HWIRQ+1;
|
unsigned dom_sz = JCORE_AIC_MAX_HWIRQ+1;
|
||||||
struct irq_domain *domain;
|
struct irq_domain *domain;
|
||||||
|
int ret;
|
||||||
|
|
||||||
pr_info("Initializing J-Core AIC\n");
|
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.irq_unmask = noop;
|
||||||
jcore_aic.name = "AIC";
|
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,
|
domain = irq_domain_add_legacy(node, dom_sz - min_irq, min_irq, min_irq,
|
||||||
&jcore_aic_irqdomain_ops,
|
&jcore_aic_irqdomain_ops,
|
||||||
&jcore_aic);
|
&jcore_aic);
|
||||||
|
|
Loading…
Reference in New Issue