diff options
| author | Felix Gu <ustc.gu@gmail.com> | 2026-02-23 17:39:07 +0800 |
|---|---|---|
| committer | Linus Walleij <linusw@kernel.org> | 2026-02-24 10:51:30 +0100 |
| commit | fd5bed798f45eb3a178ad527b43ab92705faaf8a (patch) | |
| tree | 21b5d4c5445aa02e1732be9ccd24eab3b57cbb34 | |
| parent | a2539b92e4b791c1ba482930b5e51b1591975461 (diff) | |
pinctrl: cirrus: cs42l43: Fix double-put in cs42l43_pin_probe()
devm_add_action_or_reset() already invokes the action on failure,
so the explicit put causes a double-put.
Fixes: 9b07cdf86a0b ("pinctrl: cirrus: Fix fwnode leak in cs42l43_pin_probe()")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
| -rw-r--r-- | drivers/pinctrl/cirrus/pinctrl-cs42l43.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/pinctrl/cirrus/pinctrl-cs42l43.c b/drivers/pinctrl/cirrus/pinctrl-cs42l43.c index a8f82104a384..227c37c360e1 100644 --- a/drivers/pinctrl/cirrus/pinctrl-cs42l43.c +++ b/drivers/pinctrl/cirrus/pinctrl-cs42l43.c @@ -574,10 +574,9 @@ static int cs42l43_pin_probe(struct platform_device *pdev) if (child) { ret = devm_add_action_or_reset(&pdev->dev, cs42l43_fwnode_put, child); - if (ret) { - fwnode_handle_put(child); + if (ret) return ret; - } + if (!child->dev) child->dev = priv->dev; fwnode = child; |
