Hi,
this fixes an oops with disconnection in acm. Please apply.
Regards
Oliver
Signed-off-by: Oliver Neukum <[EMAIL PROTECTED]>
--- a/drivers/usb/class/cdc-acm.c 2006-01-03 04:21:10.000000000 +0100
+++ b/drivers/usb/class/cdc-acm.c 2006-01-06 18:00:19.000000000 +0100
@@ -943,8 +943,13 @@
}
down(&open_sem);
+ if (!usb_get_intfdata(intf)) {
+ up(&open_sem);
+ return;
+ }
acm->dev = NULL;
- usb_set_intfdata (intf, NULL);
+ usb_set_intfdata(acm->control, NULL);
+ usb_set_intfdata(acm->data, NULL);
usb_kill_urb(acm->ctrlurb);
usb_kill_urb(acm->readurb);
@@ -956,7 +961,7 @@
usb_buffer_free(usb_dev, acm->readsize, acm->read_buffer,
acm->read_dma);
usb_buffer_free(usb_dev, acm->ctrlsize, acm->ctrl_buffer,
acm->ctrl_dma);
- usb_driver_release_interface(&acm_driver, acm->data);
+ usb_driver_release_interface(&acm_driver, intf == acm->control ?
acm->data : intf);
if (!acm->used) {
acm_tty_unregister(acm);
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel