Re: [PATCH 1/2] pinctrl: cs42l43: Fix leaked pm reference on error path

From: Bartosz Golaszewski

Date: Mon May 11 2026 - 08:50:57 EST


On Fri, 8 May 2026 16:34:52 +0200, Charles Keepax
<ckeepax@xxxxxxxxxxxxxxxxxxxxx> said:
> Returning directly if the regmap_update_bits() fails causes a pm runtime
> reference to be leaked, let things run to the end of the function
> instead.
>
> Fixes: e52c741907fb ("pinctrl: cirrus: cs42l43: use new GPIO line value setter callbacks")
> Signed-off-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxx>
> ---
> drivers/pinctrl/cirrus/pinctrl-cs42l43.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/pinctrl/cirrus/pinctrl-cs42l43.c b/drivers/pinctrl/cirrus/pinctrl-cs42l43.c
> index 227c37c360e19..3cc1835206077 100644
> --- a/drivers/pinctrl/cirrus/pinctrl-cs42l43.c
> +++ b/drivers/pinctrl/cirrus/pinctrl-cs42l43.c
> @@ -499,12 +499,10 @@ static int cs42l43_gpio_set(struct gpio_chip *chip, unsigned int offset,
>
> ret = regmap_update_bits(priv->regmap, CS42L43_GPIO_CTRL1,
> BIT(shift), value << shift);
> - if (ret)
> - return ret;
>
> pm_runtime_put(priv->dev);
>
> - return 0;
> + return ret;
> }
>
> static int cs42l43_gpio_direction_out(struct gpio_chip *chip,
> --
> 2.47.3
>
>

Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>