]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/media/go7007/go7007-loader.c
Merge tag 'upstream-3.14-rc5' of git://git.infradead.org/linux-ubifs
[~andy/linux] / drivers / staging / media / go7007 / go7007-loader.c
index 10bb41c2fb6d538a8c3febd47288d9aee9f8e297..eecb1f2a5574fa8ecffc536931bf37a9a2912169 100644 (file)
@@ -59,7 +59,7 @@ static int go7007_loader_probe(struct usb_interface *interface,
 
        if (usbdev->descriptor.bNumConfigurations != 1) {
                dev_err(&interface->dev, "can't handle multiple config\n");
-               return -ENODEV;
+               goto failed2;
        }
 
        vendor = le16_to_cpu(usbdev->descriptor.idVendor);
@@ -108,6 +108,7 @@ static int go7007_loader_probe(struct usb_interface *interface,
        return 0;
 
 failed2:
+       usb_put_dev(usbdev);
        dev_err(&interface->dev, "probe failed\n");
        return -ENODEV;
 }
@@ -115,6 +116,7 @@ failed2:
 static void go7007_loader_disconnect(struct usb_interface *interface)
 {
        dev_info(&interface->dev, "disconnect\n");
+       usb_put_dev(interface_to_usbdev(interface));
        usb_set_intfdata(interface, NULL);
 }