于 2013年03月04日 22:35, Felipe Balbi 写道: > this is the wrong fix, I believe. Looks like when I wrote the commits > you mention, I deleted more code then I should. Looks like the real fix > would be to add back: > > /* report disconnect; the driver is already quiesced */ > if (driver) { > spin_unlock(&dev->lock); > driver->disconnect(&dev->gadget); > spin_lock(&dev->lock); > } > ok, thanks. > since stop_activity() also gets called from RESET interrupt, and in that > case we need to call driver->disconnect(). Can you make a simple test > that would take current code and issue a device reset to see if that > would break, then apply my suggestion above and run the same test again? > ok, thanks, that is what I should do. but excuse me for my time limitation: in these days, my father had a serious heart disease in hospital. within this week end, most of my time has to be in hospital. (God bless, and thank Jesus Christ, my father is safe now). within my company (Asianux), also has something to do. so I try to finish it in next week end (Mar-15-2013). if we can not bear the time point, please reply (or prefer another member to finish it) thanks. :-) > If you want, I have a simple libusb-1.0-based little app which can issue > resets to any device you ask. Currently it will reset a device 10K > times but you can remove the for loop if you want: thank you for your information, they are valuable to me. -- Chen Gang Asianux Corporation -- 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