GICv5 LPI interrupts have an active state hence they cannot retrigger
while the IRQ is being handled.
Therefore setting IRQD_RESEND_WHEN_IN_PROGRESS for GICv5 ITS
interrupts provides no benefit and it is useless (and confusing),
it solves an issue that cannot happen.
Remove it.
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Marc Zyngier <maz@kernel.org>
---
drivers/irqchip/irq-gic-v5-its.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/irqchip/irq-gic-v5-its.c b/drivers/irqchip/irq-gic-v5-its.c
index 340640fdbdf6..9290ac741949 100644
--- a/drivers/irqchip/irq-gic-v5-its.c
+++ b/drivers/irqchip/irq-gic-v5-its.c
@@ -973,7 +973,6 @@ static int gicv5_its_irq_domain_alloc(struct irq_domain *domain, unsigned int vi
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);
}
return 0;
--
2.48.0
On Fri, 01 Aug 2025 08:58:20 +0100, Lorenzo Pieralisi <lpieralisi@kernel.org> wrote: > > GICv5 LPI interrupts have an active state hence they cannot retrigger > while the IRQ is being handled. > > Therefore setting IRQD_RESEND_WHEN_IN_PROGRESS for GICv5 ITS > interrupts provides no benefit and it is useless (and confusing), > it solves an issue that cannot happen. This doesn't read very well. How about: "Therefore, setting the IRQD_RESEND_WHEN_IN_PROGRESS flag on LPIs is pointless, as the situation this flag caters for cannot happen". > > Remove it. > > Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Marc Zyngier <maz@kernel.org> > --- > drivers/irqchip/irq-gic-v5-its.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/irqchip/irq-gic-v5-its.c b/drivers/irqchip/irq-gic-v5-its.c > index 340640fdbdf6..9290ac741949 100644 > --- a/drivers/irqchip/irq-gic-v5-its.c > +++ b/drivers/irqchip/irq-gic-v5-its.c > @@ -973,7 +973,6 @@ static int gicv5_its_irq_domain_alloc(struct irq_domain *domain, unsigned int vi > 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); > } > > return 0; > With that, Reviewed-by: Marc Zyngier <maz@kernel.org> M. -- Without deviation from the norm, progress is not possible.
On Fri, Aug 01, 2025 at 01:30:32PM +0100, Marc Zyngier wrote: > On Fri, 01 Aug 2025 08:58:20 +0100, > Lorenzo Pieralisi <lpieralisi@kernel.org> wrote: > > > > GICv5 LPI interrupts have an active state hence they cannot retrigger > > while the IRQ is being handled. > > > > Therefore setting IRQD_RESEND_WHEN_IN_PROGRESS for GICv5 ITS > > interrupts provides no benefit and it is useless (and confusing), > > it solves an issue that cannot happen. > > This doesn't read very well. How about: > > "Therefore, setting the IRQD_RESEND_WHEN_IN_PROGRESS flag on LPIs > is pointless, as the situation this flag caters for cannot happen". Yes it is clearer, I can respin a v2 unless Thomas can update the log please while applying it ? Just let me know. Thanks, Lorenzo > > Remove it. > > > > Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org> > > Cc: Thomas Gleixner <tglx@linutronix.de> > > Cc: Marc Zyngier <maz@kernel.org> > > --- > > drivers/irqchip/irq-gic-v5-its.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/drivers/irqchip/irq-gic-v5-its.c b/drivers/irqchip/irq-gic-v5-its.c > > index 340640fdbdf6..9290ac741949 100644 > > --- a/drivers/irqchip/irq-gic-v5-its.c > > +++ b/drivers/irqchip/irq-gic-v5-its.c > > @@ -973,7 +973,6 @@ static int gicv5_its_irq_domain_alloc(struct irq_domain *domain, unsigned int vi > > 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); > > } > > > > return 0; > > > > With that, > > Reviewed-by: Marc Zyngier <maz@kernel.org> > > M. > > -- > Without deviation from the norm, progress is not possible.
The following commit has been merged into the irq/urgent branch of tip:
Commit-ID: 9ba0a63badc8e74ac0d490f9113300dda0ce2c19
Gitweb: https://git.kernel.org/tip/9ba0a63badc8e74ac0d490f9113300dda0ce2c19
Author: Lorenzo Pieralisi <lpieralisi@kernel.org>
AuthorDate: Fri, 01 Aug 2025 09:58:20 +02:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Tue, 05 Aug 2025 10:43:48 +02:00
irqchip/gic-v5: Remove IRQD_RESEND_WHEN_IN_PROGRESS for ITS IRQs
GICv5 LPI interrupts have an active state hence they cannot retrigger
while the interrupt is being handled.
Therefore, setting the IRQD_RESEND_WHEN_IN_PROGRESS flag on LPIs is
pointless, as the situation this flag caters for cannot happen.
Remove it.
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/all/20250801-gic-v5-fixes-6-17-v1-3-4fcedaccf9e6@kernel.org
---
drivers/irqchip/irq-gic-v5-its.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/irqchip/irq-gic-v5-its.c b/drivers/irqchip/irq-gic-v5-its.c
index 340640f..9290ac7 100644
--- a/drivers/irqchip/irq-gic-v5-its.c
+++ b/drivers/irqchip/irq-gic-v5-its.c
@@ -973,7 +973,6 @@ static int gicv5_its_irq_domain_alloc(struct irq_domain *domain, unsigned int vi
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);
}
return 0;
© 2016 - 2025 Red Hat, Inc.