mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
can: usb_8dev: unregister netdev before free()ing
The usb_8dev hardware has problems on some xhci USB hosts. The driver fails to read the firmware revision in the probe function. This leads to the following Oops: [ 3356.635912] kernel BUG at net/core/dev.c:5701! The driver tries to free the netdev, which has already been registered, without unregistering it. This patch fixes the problem by unregistering the netdev in the error path. Reported-by: Michael Olbrich <m.olbrich@pengutronix.de> Reviewed-by: Bernd Krumboeck <krumboeck@universalnet.at> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
33be081a81
commit
4afe2156eb
@ -977,7 +977,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
|
||||
err = usb_8dev_cmd_version(priv, &version);
|
||||
if (err) {
|
||||
netdev_err(netdev, "can't get firmware version\n");
|
||||
goto cleanup_cmd_msg_buffer;
|
||||
goto cleanup_unregister_candev;
|
||||
} else {
|
||||
netdev_info(netdev,
|
||||
"firmware: %d.%d, hardware: %d.%d\n",
|
||||
@ -989,6 +989,9 @@ static int usb_8dev_probe(struct usb_interface *intf,
|
||||
|
||||
return 0;
|
||||
|
||||
cleanup_unregister_candev:
|
||||
unregister_netdev(priv->netdev);
|
||||
|
||||
cleanup_cmd_msg_buffer:
|
||||
kfree(priv->cmd_msg_buffer);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user