Skip to content

Commit c2bac68

Browse files
edgar-bonetKAGA-KOKO
authored andcommitted
irqchip/atmel-aic[5]: Fix incorrect lock guard conversion
Commit b00bee8 ("irqchip: Convert generic irqchip locking to guards") replaced calls to irq_gc_lock_irq{save,restore}() with guard(raw_spinlock_irq). However, in irq-atmel-aic5.c and irq-atmel-aic.c, the xlate callback is used in the early boot process, before interrupts are initially enabled. As its destructor enables interrupts, this triggers the warning in start_kernel(): WARNING: CPU: 0 PID: 0 at init/main.c:1024 start_kernel+0x4d0/0x5dc Interrupts were enabled early Fix this by using guard(raw_spinlock_irqsave) instead. [ tglx: Folded the equivivalent fix for atmel-aic ] Fixes: b00bee8 ("irqchip: Convert generic irqchip locking to guards") Signed-off-by: Edgar Bonet <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Reviewed-by: Geert Uytterhoeven <[email protected]> Link: https://lore.kernel.org/all/[email protected]
1 parent 8f5ae30 commit c2bac68

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

drivers/irqchip/irq-atmel-aic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ static int aic_irq_domain_xlate(struct irq_domain *d,
188188

189189
gc = dgc->gc[idx];
190190

191-
guard(raw_spinlock_irq)(&gc->lock);
191+
guard(raw_spinlock_irqsave)(&gc->lock);
192192
smr = irq_reg_readl(gc, AT91_AIC_SMR(*out_hwirq));
193193
aic_common_set_priority(intspec[2], &smr);
194194
irq_reg_writel(gc, smr, AT91_AIC_SMR(*out_hwirq));

drivers/irqchip/irq-atmel-aic5.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ static int aic5_irq_domain_xlate(struct irq_domain *d,
279279
if (ret)
280280
return ret;
281281

282-
guard(raw_spinlock_irq)(&bgc->lock);
282+
guard(raw_spinlock_irqsave)(&bgc->lock);
283283
irq_reg_writel(bgc, *out_hwirq, AT91_AIC5_SSR);
284284
smr = irq_reg_readl(bgc, AT91_AIC5_SMR);
285285
aic_common_set_priority(intspec[2], &smr);

0 commit comments

Comments
 (0)