Skip to content

Commit

Permalink
[media] dvb_usb_v2: probe/disconnect error handling
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Antti Palosaari authored and Mauro Carvalho Chehab committed Aug 4, 2012
1 parent d496eb8 commit 823eeba
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions drivers/media/dvb/dvb-usb/dvb_usb_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 823eeba

Please sign in to comment.