Am Montag, 3. August 2009 21:16:26 schrieb Alex Riesen: > ep3in-bulk [ 54.274842] acm_rx_tasklet: enter > [ 54.274845] acm_rx_tasklet: ep == NULL > [ 54.274846] acm_rx_tasklet: leave > [ 54.274863] usb 5-1: unregistering interface 5-1:1.0 > [ 54.275123] acm_disconnect: enter > [ 54.275125] acm_disconnect: before mutex_lock(&open_mutex) > [ 54.275195] acm_disconnect: after acm->dev = NULL > [ 54.275368] acm_disconnect: enter > [ 54.275370] acm_disconnect: leave (!acm) > [ 54.275490] acm_disconnect: after mutex_unlock(&open_mutex) > [ 54.275496] acm_disconnect: leave Most interesting. It seems like it bombs because this code: if (dev->actconfig) { for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++) { struct usb_interface *interface; /* remove this interface if it has been registered */ interface = dev->actconfig->interface[i]; if (!device_is_registered(&interface->dev)) continue; dev_dbg(&dev->dev, "unregistering interface %s\n", dev_name(&interface->dev)); interface->unregistering = 1; remove_intf_ep_devs(interface); device_del(&interface->dev); } does something fishy in remove_intf_ep_devs() I am investigating. Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html