Message ID | 20240127161753.114685-2-apatel@ventanamicro.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Linux RISC-V AIA Support | expand |
On Sat, 27 Jan 2024 16:17:29 +0000, Anup Patel <apatel@ventanamicro.com> wrote: > > From: Thomas Gleixner <tglx@linutronix.de> > > Currently the irqdomain select callback is only invoked when the parameter > count of the fwspec arguments is not zero. That makes sense because then > the match is on the firmware node and eventually on the bus_token, which is > already handled in the core code. > > The upcoming support for per device MSI domains requires to do real bus > token specific checks in the MSI parent domains with a zero parameter > count. > > Make the gic-v3 select() callback handle that case. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Anup Patel <apatel@ventanamicro.com> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Marc Zyngier <maz@kernel.org> Acked-by: Marc Zyngier <maz@kernel.org> M.
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index 98b0329b7154..35b9362d178f 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -1702,9 +1702,13 @@ static int gic_irq_domain_select(struct irq_domain *d, irq_hw_number_t hwirq; /* Not for us */ - if (fwspec->fwnode != d->fwnode) + if (fwspec->fwnode != d->fwnode) return 0; + /* Handle pure domain searches */ + if (!fwspec->param_count) + return d->bus_token == bus_token; + /* If this is not DT, then we have a single domain */ if (!is_of_node(fwspec->fwnode)) return 1;