]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pinctrl: renesas: rzg2l: Use raw_spinlock_irqsave() on power source update
authorClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Wed, 3 Jun 2026 15:16:37 +0000 (18:16 +0300)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 5 Jun 2026 09:44:54 +0000 (11:44 +0200)
The rest of the driver uses raw_spin_lock_irqsave() and
raw_spin_unlock_irqrestore() for locking.  To avoid concurrency issues
or deadlocks, use raw_spinlock_irqsave() via the scoped_guard() helper
for power source updates as well.

Fixes: bbe2277dedbe ("pinctrl: renesas: rzg2l: Add support for selecting power source for {WDT,AWO,ISO}")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260603151642.4075678-2-claudiu.beznea@kernel.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
drivers/pinctrl/renesas/pinctrl-rzg2l.c

index 83c61dcb24b1530dd9c8e0ec8f2b26f47c7cbb2f..be52d47d77ae232aa1a3cb5787de9b80c3e3712f 100644 (file)
@@ -1137,7 +1137,7 @@ static int rzg2l_set_power_source(struct rzg2l_pinctrl *pctrl, u32 pin, u32 caps
                return pwr_reg;
 
        if (pwr_reg == OTHER_POC) {
-               scoped_guard(raw_spinlock, &pctrl->lock) {
+               scoped_guard(raw_spinlock_irqsave, &pctrl->lock) {
                        val = readb(pctrl->base + pwr_reg);
                        if (poc_val)
                                val |= mask;