Skip to content

Commit 599b306

Browse files
mkresinMarc Zyngier
authored andcommitted
irqchip/mips-cpu: Set IPI domain parent chip
Since commit 5556797 ("genirq/irqdomain: Allow partial trimming of irq_data hierarchy") the irq_data chain is valided. The irq_domain_trim_hierarchy() function doesn't consider the irq + ipi domain hierarchy as valid, since the ipi domain has the irq domain set as parent, but the parent domain has no chip set. Hence the boot ends in a kernel panic. Set the chip for the parent domain as it is done in the mips gic irq driver, to have a valid irq_data chain. Fixes: 3838a54 ("irqchip: mips-cpu: Introduce IPI IRQ domain support") Cc: <[email protected]> # v5.10+ Signed-off-by: Mathias Kresin <[email protected]> Signed-off-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent b8e594f commit 599b306

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

drivers/irqchip/irq-mips-cpu.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,13 @@ static int mips_cpu_ipi_alloc(struct irq_domain *domain, unsigned int virq,
197197
if (ret)
198198
return ret;
199199

200+
ret = irq_domain_set_hwirq_and_chip(domain->parent, virq + i, hwirq,
201+
&mips_mt_cpu_irq_controller,
202+
NULL);
203+
204+
if (ret)
205+
return ret;
206+
200207
ret = irq_set_irq_type(virq + i, IRQ_TYPE_LEVEL_HIGH);
201208
if (ret)
202209
return ret;

0 commit comments

Comments
 (0)