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. Signed-off-by: Dongliang Mu <dzm91@xxxxxxxxxxx> --- drivers/net/can/spi/mcp251x.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c index c320de474f40..b4b280c0699d 100644 --- a/drivers/net/can/spi/mcp251x.c +++ b/drivers/net/can/spi/mcp251x.c @@ -1415,11 +1415,14 @@ static int mcp251x_can_probe(struct spi_device *spi) ret = mcp251x_gpio_setup(priv); if (ret) - goto error_probe; + goto err_reg_candev; netdev_info(net, "MCP%x successfully initialized.\n", priv->model); return 0; +err_reg_candev: + unregister_candev(net); + error_probe: destroy_workqueue(priv->wq); priv->wq = NULL; -- 2.35.1