Commit f3be8642 authored by Dongliang Mu's avatar Dongliang Mu Committed by Lipeng Sang
Browse files

can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error path

stable inclusion
from stable-v5.10.153
commit 6b2d07fc0b0a3f99d1ef918d42bd10ca3c497a54
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I64YCA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=6b2d07fc0b0a3f99d1ef918d42bd10ca3c497a54



--------------------------------

[ Upstream commit 3e5b3418 ]

The commit 1149108e ("can: mscan: improve clock API use") only
adds put_clock() in mpc5xxx_can_remove() function, forgetting to add
put_clock() in the error handling code.

Fix this bug by adding put_clock() in the error handling code.

Fixes: 1149108e ("can: mscan: improve clock API use")
Signed-off-by: default avatarDongliang Mu <dzm91@hust.edu.cn>
Link: https://lore.kernel.org/all/20221024133828.35881-1-mkl@pengutronix.de


Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarLipeng Sang <sanglipeng1@jd.com>
parent d23692c2
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -325,14 +325,14 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)
					       &mscan_clksrc);
	if (!priv->can.clock.freq) {
		dev_err(&ofdev->dev, "couldn't get MSCAN clock properties\n");
		goto exit_free_mscan;
		goto exit_put_clock;
	}

	err = register_mscandev(dev, mscan_clksrc);
	if (err) {
		dev_err(&ofdev->dev, "registering %s failed (err=%d)\n",
			DRV_NAME, err);
		goto exit_free_mscan;
		goto exit_put_clock;
	}

	dev_info(&ofdev->dev, "MSCAN at 0x%p, irq %d, clock %d Hz\n",
@@ -340,7 +340,9 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)

	return 0;

exit_free_mscan:
exit_put_clock:
	if (data->put_clock)
		data->put_clock(ofdev);
	free_candev(dev);
exit_dispose_irq:
	irq_dispose_mapping(irq);