On Mon, Jan 11, 2021 at 12:38:05PM -0800, Thinh Nguyen wrote: > For some UDCs, the initialization sequence by udc_start() should not be > repeated until it is properly cleaned up with udc_stop() and vise versa. > We may run into some cleanup failure as seen with the DWC3 driver during > the irq cleanup. This issue can occur when the user triggers > soft-connect/soft-disconnect from the soft_connect sysfs. To avoid > adding checks to every UDC driver, at the UDC framework, introduce a > "started" state to track and prevent the UDC from repeating the > udc_start() and udc_stop() if it had already started/stopped. > > Signed-off-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> Is the new "started" field subject to races? What happens if there are concurrent requests to start and stop the UDC? Alan Stern