can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
[firefly-linux-kernel-4.4.55.git] / drivers / net / can / usb / usb_8dev.c
index a731720f1d132501d12d6241ccee833ae2e61787..449b2a47f9a895d8408acd314274ae92e51e143f 100644 (file)
@@ -954,8 +954,8 @@ static int usb_8dev_probe(struct usb_interface *intf,
        for (i = 0; i < MAX_TX_URBS; i++)
                priv->tx_contexts[i].echo_index = MAX_TX_URBS;
 
-       priv->cmd_msg_buffer = kzalloc(sizeof(struct usb_8dev_cmd_msg),
-                                     GFP_KERNEL);
+       priv->cmd_msg_buffer = devm_kzalloc(&intf->dev, sizeof(struct usb_8dev_cmd_msg),
+                                           GFP_KERNEL);
        if (!priv->cmd_msg_buffer)
                goto cleanup_candev;
 
@@ -969,7 +969,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
        if (err) {
                netdev_err(netdev,
                        "couldn't register CAN device: %d\n", err);
-               goto cleanup_cmd_msg_buffer;
+               goto cleanup_candev;
        }
 
        err = usb_8dev_cmd_version(priv, &version);
@@ -990,9 +990,6 @@ static int usb_8dev_probe(struct usb_interface *intf,
 cleanup_unregister_candev:
        unregister_netdev(priv->netdev);
 
-cleanup_cmd_msg_buffer:
-       kfree(priv->cmd_msg_buffer);
-
 cleanup_candev:
        free_candev(netdev);