Commit 8b9d377a authored by Jakub Kicinski's avatar Jakub Kicinski

Merge tag 'linux-can-fixes-for-6.1-20221025' of...

Merge tag 'linux-can-fixes-for-6.1-20221025' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can

Marc Kleine-Budde says:

====================
pull-request: can 2022-10-25

The 1st patch adds a missing cleanup call in the error path of the
probe function in mpc5xxx glue code for the mscan driver.

The 2nd patch adds a missing cleanup call in the error path of the
probe function of the mcp251x driver.

* tag 'linux-can-fixes-for-6.1-20221025' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
  can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() in error path
  can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error path
====================

Link: https://lore.kernel.org/r/20221026075520.1502520-1-mkl@pengutronix.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents c5f0a172 b1a09b63
...@@ -322,14 +322,14 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev) ...@@ -322,14 +322,14 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)
&mscan_clksrc); &mscan_clksrc);
if (!priv->can.clock.freq) { if (!priv->can.clock.freq) {
dev_err(&ofdev->dev, "couldn't get MSCAN clock properties\n"); 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); err = register_mscandev(dev, mscan_clksrc);
if (err) { if (err) {
dev_err(&ofdev->dev, "registering %s failed (err=%d)\n", dev_err(&ofdev->dev, "registering %s failed (err=%d)\n",
DRV_NAME, err); 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", dev_info(&ofdev->dev, "MSCAN at 0x%p, irq %d, clock %d Hz\n",
...@@ -337,7 +337,9 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev) ...@@ -337,7 +337,9 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)
return 0; return 0;
exit_free_mscan: exit_put_clock:
if (data->put_clock)
data->put_clock(ofdev);
free_candev(dev); free_candev(dev);
exit_dispose_irq: exit_dispose_irq:
irq_dispose_mapping(irq); irq_dispose_mapping(irq);
......
...@@ -1415,11 +1415,14 @@ static int mcp251x_can_probe(struct spi_device *spi) ...@@ -1415,11 +1415,14 @@ static int mcp251x_can_probe(struct spi_device *spi)
ret = mcp251x_gpio_setup(priv); ret = mcp251x_gpio_setup(priv);
if (ret) if (ret)
goto error_probe; goto out_unregister_candev;
netdev_info(net, "MCP%x successfully initialized.\n", priv->model); netdev_info(net, "MCP%x successfully initialized.\n", priv->model);
return 0; return 0;
out_unregister_candev:
unregister_candev(net);
error_probe: error_probe:
destroy_workqueue(priv->wq); destroy_workqueue(priv->wq);
priv->wq = NULL; priv->wq = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment