[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7469373.vRGg21xy4h@np-p-burton>
Date: Fri, 30 Sep 2016 15:40:48 +0100
From: Paul Burton <paul.burton@...tec.com>
To: Marc Zyngier <marc.zyngier@....com>,
Jason Cooper <jason@...edaemon.net>,
Thomas Gleixner <tglx@...utronix.de>
CC: <linux-mips@...ux-mips.org>, Ralf Baechle <ralf@...ux-mips.org>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2 01/14] irqchip: i8259: Add domain before mapping parent irq
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@...tec.com>
> ---
>
> 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;
Download attachment "signature.asc" of type "application/pgp-signature" (802 bytes)
Powered by blists - more mailing lists