can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() in error path
authorDongliang Mu <dzm91@hust.edu.cn>
Mon, 24 Oct 2022 09:02:52 +0000 (17:02 +0800)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 25 Oct 2022 07:13:14 +0000 (09:13 +0200)
In mcp251x_can_probe(), if mcp251x_gpio_setup() fails, it forgets to
unregister the CAN device.

Fix this by unregistering can device in mcp251x_can_probe().

Fixes: 2d52dabbef60 ("can: mcp251x: add GPIO support")
Signed-off-by: Dongliang Mu <dzm91@hust.edu.cn>
Link: https://lore.kernel.org/all/20221024090256.717236-1-dzm91@hust.edu.cn
[mkl: adjust label]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/spi/mcp251x.c

index c320de4..24883a6 100644 (file)
@@ -1415,11 +1415,14 @@ static int mcp251x_can_probe(struct spi_device *spi)
 
        ret = mcp251x_gpio_setup(priv);
        if (ret)
-               goto error_probe;
+               goto out_unregister_candev;
 
        netdev_info(net, "MCP%x successfully initialized.\n", priv->model);
        return 0;
 
+out_unregister_candev:
+       unregister_candev(net);
+
 error_probe:
        destroy_workqueue(priv->wq);
        priv->wq = NULL;