[media] dvb_usb_v2: probe/disconnect error handling
authorAntti Palosaari <crope@iki.fi>
Sun, 10 Jun 2012 02:42:47 +0000 (23:42 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 10:56:29 +0000 (07:56 -0300)
In my understanding we never call .disconnect() when .probe()
returns error. Change .probe() to return error all cases it cannot
handle given interface and simplify .disconnect() handling.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/dvb_usb_init.c

index 2d0fbaf6c6d0614be302d47483ed3dd035107b49..1f0fb11c587c7ad9c9c7d10d376b14102a03235c 100644 (file)
@@ -393,7 +393,7 @@ int dvb_usbv2_probe(struct usb_interface *intf,
 
        if (d->intf->cur_altsetting->desc.bInterfaceNumber !=
                        d->props.bInterfaceNumber) {
-               ret = 0;
+               ret = -ENODEV;
                goto err_kfree;
        }
 
@@ -419,7 +419,7 @@ EXPORT_SYMBOL(dvb_usbv2_probe);
 void dvb_usbv2_disconnect(struct usb_interface *intf)
 {
        struct dvb_usb_device *d = usb_get_intfdata(intf);
-       const char *name = "generic DVB-USB module";
+       const char *name;
 
        pr_debug("%s: pid=%d work_pid=%d\n", __func__, current->pid,
                        d->work_pid);
@@ -428,10 +428,8 @@ void dvb_usbv2_disconnect(struct usb_interface *intf)
        if (d->work_pid != current->pid)
                cancel_work_sync(&d->probe_work);
 
-       if (d) {
-               name = d->name;
-               dvb_usbv2_exit(d);
-       }
+       name = d->name;
+       dvb_usbv2_exit(d);
 
        pr_info("%s: '%s' successfully deinitialized and disconnected\n",
                        KBUILD_MODNAME, name);