ChangeSet 1.1325.4.4, 2003/09/23 17:04:08-07:00, [EMAIL PROTECTED]
[PATCH] USB scanner driver: balancing usb_register_dev/usb_deregister_dev
Balancing usb_register_dev/usb_deregister_dev in probe_scanner when a
fail condition occours (Daniele Bellucci).
drivers/usb/image/scanner.c | 6 ++++++
1 files changed, 6 insertions(+)
diff -Nru a/drivers/usb/image/scanner.c b/drivers/usb/image/scanner.c
--- a/drivers/usb/image/scanner.c Thu Sep 25 14:32:27 2003
+++ b/drivers/usb/image/scanner.c Thu Sep 25 14:32:27 2003
@@ -374,6 +374,8 @@
* (Daniele Bellucci).
* - Report back return codes of usb_register and usb_usbmit_urb instead of -1 or
* -ENONMEM (Daniele Bellucci).
+ * - Balancing usb_register_dev/usb_deregister_dev in probe_scanner when a fail
+ * condition occours (Daniele Bellucci).
*
*
* TODO
@@ -1050,6 +1052,7 @@
scn->scn_irq = usb_alloc_urb(0, GFP_KERNEL);
if (!scn->scn_irq) {
+ usb_deregister_dev(intf, &scanner_class);
kfree(scn);
up(&scn_mutex);
return -ENOMEM;
@@ -1071,6 +1074,7 @@
retval = usb_submit_urb(scn->scn_irq, GFP_KERNEL);
if (retval) {
err("probe_scanner(%d): Unable to allocate INT URB.",
intf->minor);
+ usb_deregister_dev(intf, &scanner_class);
kfree(scn);
up(&scn_mutex);
return retval;
@@ -1084,6 +1088,7 @@
if (have_intr)
usb_unlink_urb(scn->scn_irq);
usb_free_urb(scn->scn_irq);
+ usb_deregister_dev(intf, &scanner_class);
kfree(scn);
up(&scn_mutex);
return -ENOMEM;
@@ -1095,6 +1100,7 @@
if (have_intr)
usb_unlink_urb(scn->scn_irq);
usb_free_urb(scn->scn_irq);
+ usb_deregister_dev(intf, &scanner_class);
kfree(scn->obuf);
kfree(scn);
up(&scn_mutex);
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel