On Tue, 5 Apr 2016, Michal Nazarewicz wrote: > When binding the function to usb_configuration, check whether the thread > is running before starting another one. Without that, when function > instance is added to multiple configurations, fsg_bing starts multiple > threads with all but the latest one being forgotten by the driver. This > leads to obvious thread leaks, possible lockups when trying to halt the > machine and possible more issues. > > This fixes issues with legacy/multi¹ gadget as well as configfs gadgets > when mass_storage function is added to multiple configurations. > > This change also simplifies API since the legacy gadgets no longer need > to worry about starting the thread by themselves (which was where bug > in legacy/multi was in the first place). > > ¹ I have no example failure though. Conclusion that legacy/multi has > a bug is based purely on me reading the code. > > Signed-off-by: Michal Nazarewicz <mina86@xxxxxxxxxx> This doesn't address the problem I raised in a previous email. Sharing one thread among several function instances in the same config will not work if one of them encounters an error. Alan Stern -- 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