diff options
| author | Felix Gu <ustc.gu@gmail.com> | 2026-02-23 12:39:07 +0300 |
|---|---|---|
| committer | Sasha Levin <sashal@kernel.org> | 2026-03-12 14:09:42 +0300 |
| commit | 1e0465139fd9caee7ffefe285ef7d5f21919e474 (patch) | |
| tree | 68ab683d6ead1b1a6baeff4b70ead4da1028b1c7 /drivers/pinctrl | |
| parent | 44d49a4107fdd3b5c21b43e0f291ca7fed07771c (diff) | |
| download | linux-1e0465139fd9caee7ffefe285ef7d5f21919e474.tar.xz | |
pinctrl: cirrus: cs42l43: Fix double-put in cs42l43_pin_probe()
[ Upstream commit fd5bed798f45eb3a178ad527b43ab92705faaf8a ]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/pinctrl')
| -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; |
