Commit e002103b authored by Zhang Changzhong's avatar Zhang Changzhong Committed by Marc Kleine-Budde
Browse files

can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error path



The driver forgets to call clk_disable_unprepare() in error path after
a success calling for clk_prepare_enable().

Fix it by adding a clk_disable_unprepare() in error path.

Signed-off-by: default avatarZhang Changzhong <zhangchangzhong@huawei.com>
Link: https://lore.kernel.org/r/1594973079-27743-1-git-send-email-zhangchangzhong@huawei.com


Fixes: befa6011 ("can: ti_hecc: add missing prepare and unprepare of the clock")
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent c3ddac4b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -933,7 +933,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
	err = clk_prepare_enable(priv->clk);
	if (err) {
		dev_err(&pdev->dev, "clk_prepare_enable() failed\n");
		goto probe_exit_clk;
		goto probe_exit_release_clk;
	}

	priv->offload.mailbox_read = ti_hecc_mailbox_read;
@@ -942,7 +942,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
	err = can_rx_offload_add_timestamp(ndev, &priv->offload);
	if (err) {
		dev_err(&pdev->dev, "can_rx_offload_add_timestamp() failed\n");
		goto probe_exit_clk;
		goto probe_exit_disable_clk;
	}

	err = register_candev(ndev);
@@ -960,7 +960,9 @@ static int ti_hecc_probe(struct platform_device *pdev)

probe_exit_offload:
	can_rx_offload_del(&priv->offload);
probe_exit_clk:
probe_exit_disable_clk:
	clk_disable_unprepare(priv->clk);
probe_exit_release_clk:
	clk_put(priv->clk);
probe_exit_candev:
	free_candev(ndev);