I have an omap3(TI) based system, one attached device include an usb-hub with 2 usb-acm devices and 1 usb touch screen, when I unplung this device, it causes the system to crash if /dev/ttyACM0 and /dev/ttyACM1 are used by application at the time, otherwise, it will be shutdown normally. From the trace I see, the usb host controller driver returns all scheduled URBs, and cdc-acm continues to send URBs, it ends up by crashing. After adding these 2 lines, it does fix my problem. However, I'm not sure why acm_disconnect is not called, probably, because /dev/ttyACM# is busy, this prevents the system from doing it. Any other ideas? Regards Wending -----Original Message----- From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx]On Behalf Of Oliver Neukum Sent: July 23, 2009 11:59 AM To: Weng, Wending Cc: linux-usb@xxxxxxxxxxxxxxx Subject: Re: kernel 2.6.31.-rc1 drivers/usb/class/cdc-acm.c patch Am Donnerstag, 23. Juli 2009 17:34:18 schrieb Weng, Wending: > [PATCH] When the usb-serial cable is unpluged, the usb host controller > driver returns all scheduled URBs to usb-serial driver(cdc-acm.c), and the > usb-serial driver(cdc-acm.c) doesn't detect this exception, continues to > schedule the URBs, it causes a dead loop. This change fixes this problem. How does this bug show? Note that acm_disconnect() calls stop_traffic() which calls tasklet_disable(). So how can this pronlem arise? 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 -- 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