Hi,
Balancing usb_register_dev/usb_deregister_dev in probe_scanner when a
fail condition occours (Daniele Bellucci).
Bye,
Henning
--- linux-2.6.0-test5.ret_val/drivers/usb/image/scanner.c 2003-09-12
19:09:14.000000000 +0200
+++ linux-2.6.0-test5.dereg/drivers/usb/image/scanner.c 2003-09-12 19:26:51.000000000
+0200
@@ -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