On Monday, 19 September 2016 22:21:18 BST Paul Burton wrote: > Mapping the parent IRQ will use a virq number which may conflict with > the hardcoded I8259A_IRQ_BASE..I8259A_IRQ_BASE+15 range that the i8259 > driver expects to be free. If this occurs then we'll hit errors when > adding the i8259 IRQ domain, since one of its virq numbers will already > be in use. > > Avoid this by adding the i8259 domain before mapping the parent IRQ, > such that the i8259 virq numbers become used before the parent interrupt > controller gets a chance to use any of them. Hello, Any chance of getting reviews/acks on this & the following 2 patches in the series so Ralf can take them through the MIPS tree? The lack of these (well, patches 1 & 2 anyway) blocks applying many of the Malta patches later in the series. Thanks, Paul > > Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx> > --- > > Changes in v2: None > > drivers/irqchip/irq-i8259.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/irqchip/irq-i8259.c b/drivers/irqchip/irq-i8259.c > index 6b304eb..85897fd 100644 > --- a/drivers/irqchip/irq-i8259.c > +++ b/drivers/irqchip/irq-i8259.c > @@ -370,13 +370,15 @@ int __init i8259_of_init(struct device_node *node, > struct device_node *parent) struct irq_domain *domain; > unsigned int parent_irq; > > + domain = __init_i8259_irqs(node); > + > parent_irq = irq_of_parse_and_map(node, 0); > if (!parent_irq) { > pr_err("Failed to map i8259 parent IRQ\n"); > + irq_domain_remove(domain); > return -ENODEV; > } > > - domain = __init_i8259_irqs(node); > irq_set_chained_handler_and_data(parent_irq, i8259_irq_dispatch, > domain); > return 0;
Attachment:
signature.asc
Description: This is a digitally signed message part.