Skip to contentSkip to conversation

generic: irq_pipeline: Fix fallouts of lock guard conversion

PATCH Applied Jan Kiszka 2 participants 2 messages Jul 30, 2025

Subsystems (4)
lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

PATCH 1/1 generic: irq_pipeline: Fix fallouts of lock guard conversion

From: Jan Kiszka <[email protected]>

The irq_chip_generic struct uses a hard_spinlock to support the irq pipeline.

---

Should unbreak the Xenomai CI pipeline.

 drivers/irqchip/irq-bcm7120-l2.c | 2 +-
 drivers/soc/dove/pmu.c           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/irqchip/irq-bcm7120-l2.c +1 -1
index 28cebe480eb1d..a2f8433d9a564 100644
@@ -68,7 +68,7 @@ static void bcm7120_l2_intc_irq_handle(struct irq_desc *desc)
 		int hwirq;
 
 		gc = irq_get_domain_generic_chip(b->domain, base);
-		scoped_guard (raw_spinlock, &gc->lock) {
+		scoped_guard (hard_spinlock, &gc->lock) {
 			pending = irq_reg_readl(gc, b->stat_offset[idx]) & gc->mask_cache &
 				data->irq_map_mask[idx];
 		}
drivers/soc/dove/pmu.c +1 -1
index 7bbd3f940e4d9..142ccda535176 100644
@@ -257,7 +257,7 @@ static void pmu_irq_handler(struct irq_desc *desc)
 	 * So, let's structure the code so that the window is as small as
 	 * possible.
 	 */
-	guard(raw_spinlock)(&gc->lock);
+	guard(hard_spinlock)(&gc->lock);
 	done &= readl_relaxed(base + PMC_IRQ_CAUSE);
 	writel_relaxed(done, base + PMC_IRQ_CAUSE);
 }
Signature · 1 line
2.43.0
#1 lore raw
Quoted 32 lines · Jan Kiszka

From: Jan Kiszka <[email protected]>

The irq_chip_generic struct uses a hard_spinlock to support the irq pipeline.

---

Should unbreak the Xenomai CI pipeline.

 drivers/irqchip/irq-bcm7120-l2.c | 2 +-
 drivers/soc/dove/pmu.c           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/irqchip/irq-bcm7120-l2.c +1 -1
index 28cebe480eb1d..a2f8433d9a564 100644
@@ -68,7 +68,7 @@ static void bcm7120_l2_intc_irq_handle(struct irq_desc *desc)
 		int hwirq;
 
 		gc = irq_get_domain_generic_chip(b->domain, base);
-		scoped_guard (raw_spinlock, &gc->lock) {
+		scoped_guard (hard_spinlock, &gc->lock) {
 			pending = irq_reg_readl(gc, b->stat_offset[idx]) & gc->mask_cache &
 				data->irq_map_mask[idx];
 		}
drivers/soc/dove/pmu.c +0 -0
index 7bbd3f940e4d9..142ccda535176 100644

drivers/soc/dove/pmu.c static void pmu_irq_handler(struct irq_desc *desc) · line 263

Quoted 8 lines
drivers/soc/dove/pmu.c +1 -1
@@ -257,7 +257,7 @@ static void pmu_irq_handler(struct irq_desc *desc)
 	 * So, let's structure the code so that the window is as small as
 	 * possible.
 	 */
-	guard(raw_spinlock)(&gc->lock);
+	guard(hard_spinlock)(&gc->lock);
 	done &= readl_relaxed(base + PMC_IRQ_CAUSE);
 	writel_relaxed(done, base + PMC_IRQ_CAUSE);
 }

Merged, thanks.

Signature · 1 line
Philippe.