Am Samstag, 12. Februar 2005 09:53 schrieb Martin Devera: > > >Oliver may be on to something. Try using this patch instead of your > >changes: > > > >--- a/drivers/usb/class/cdc-acm.c Fri Feb 11 22:17:32 2005 > >+++ b/drivers/usb/class/cdc-acm.c Fri Feb 11 22:16:41 2005 > >@@ -767,8 +767,15 @@ > > > > static void acm_disconnect(struct usb_interface *intf) > > { > >- struct acm *acm = usb_get_intfdata (intf); > >- struct usb_device *usb_dev = interface_to_usbdev(intf); > >+ struct acm *acm; > >+ struct usb_device *usb_dev; > >+ > >+ dbg("%s 1: intf = %p\n", __FUNCTION__, intf); > >+ acm = usb_get_intfdata (intf); > >+ dbg(" 2: acm = %p\n", acm); > >+ dbg(" 3: acm->dev = %p\n", acm->dev); > >+ usb_dev = interface_to_usbdev(intf); > >+ dbg(" 4: usb_dev = %p\n", usb_dev); > > > > if (!acm || !acm->dev) { > > dbg("disconnect on nonexisting interface"); > > > >Alan Stern > > > > > > > > > Eh ! Forgive me my stupidity ;-) I should look at oops before blindly adding > dbg()s. Well, yes it is called twice with the same acm ... See usboops.6 > devik
OK, with the same acm, but different devices. Disconnecting the second interfaces is killing the driver. I'll make a patch. Regards Oliver PS: Alan, your debug patches are so much more elegant than mine. ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel