Messages in this thread | | | From | Valentin Schneider <> | Subject | Re: [PATCH 2/2] irqchip/gic-v3: Fix selection of partition domain for EPPIs | Date | Fri, 30 Jul 2021 11:47:30 +0100 |
| |
On 29/07/21 17:27, James Morse wrote: > commit 5f51f803826e ("irqchip/gic-v3: Add EPPI range support") added > GIC_IRQ_TYPE_PARTITION support for EPPI to gic_irq_domain_translate(), > and commit 52085d3f2028 ("irqchip/gic-v3: Dynamically allocate PPI > partition descriptors") made the gic_data.ppi_descs array big enough for > EPPI, but neither gic_irq_domain_select() nor partition_domain_translate() > were updated. > > This means partitions are created by partition_create_desc() for the > EPPI range, but can't be registered as they will always match the root > domain and map to the summary interrupt. > > Update gic_irq_domain_select() to match PPI and EPPI. The fwspec for > PPI and EPPI both start from 0. Use gic_irq_domain_translate() to find > the hwirq from the fwspec, then convert this to a ppi index. > > Reported-by: Valentin Schneider <valentin.schneider@arm.com> > Signed-off-by: James Morse <james.morse@arm.com>
Tiny nit below, regardless:
Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
> @@ -1518,7 +1547,12 @@ static int partition_domain_translate(struct irq_domain *d, > if (WARN_ON(!np)) > return -EINVAL; > > - ret = partition_translate_id(gic_data.ppi_descs[fwspec->param[1]], > + ret = gic_irq_domain_translate(d, fwspec, &ppi_intid, type);
This assigns @type for us, so the @type assignment at the tail of partition_domain_translate() becomes redundant.
> + if (WARN_ON_ONCE(ret)) > + return 0; > + > + ppi_idx = __gic_get_ppi_index(ppi_intid); > + ret = partition_translate_id(gic_data.ppi_descs[ppi_idx], > of_node_to_fwnode(np)); > if (ret < 0) > return ret; > -- > 2.30.2
| |