diff options
author | Marc Zyngier <maz@kernel.org> | 2023-06-16 13:23:55 +0200 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2023-06-16 13:23:55 +0200 |
commit | d59b553fefa940f91aa96ff898267acc58e59e6b (patch) | |
tree | a90e8d15de4909882b67a290ac22cb33dff28535 /drivers/irqchip | |
parent | Merge branch irq/gic-v3-asr8601 into irq/irqchip-next (diff) | |
parent | irqchip/gic-v3-its: Enable RESEND_WHEN_IN_PROGRESS for LPIs (diff) | |
download | linux-d59b553fefa940f91aa96ff898267acc58e59e6b.tar.xz linux-d59b553fefa940f91aa96ff898267acc58e59e6b.zip |
Merge branch irq/lpi-resend into irq/irqchip-next
* irq/lpi-resend:
: .
: Patch series from James Gowans, working around an issue with
: GICv3 LPIs that can fire concurrently on multiple CPUs.
: .
irqchip/gic-v3-its: Enable RESEND_WHEN_IN_PROGRESS for LPIs
genirq: Allow fasteoi handler to resend interrupts on concurrent handling
genirq: Expand doc for PENDING and REPLAY flags
genirq: Use BIT() for the IRQD_* state flags
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'drivers/irqchip')
-rw-r--r-- | drivers/irqchip/irq-gic-v3-its.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 0ec2b1e1df75..1994541eaef8 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -3585,6 +3585,7 @@ static int its_irq_domain_alloc(struct irq_domain *domain, unsigned int virq, irqd = irq_get_irq_data(virq + i); irqd_set_single_target(irqd); irqd_set_affinity_on_activate(irqd); + irqd_set_resend_when_in_progress(irqd); pr_debug("ID:%d pID:%d vID:%d\n", (int)(hwirq + i - its_dev->event_map.lpi_base), (int)(hwirq + i), virq + i); @@ -4523,6 +4524,7 @@ static int its_vpe_irq_domain_alloc(struct irq_domain *domain, unsigned int virq irq_domain_set_hwirq_and_chip(domain, virq + i, i, irqchip, vm->vpes[i]); set_bit(i, bitmap); + irqd_set_resend_when_in_progress(irq_get_irq_data(virq + i)); } if (err) { |