On Mo, 2018-10-15 at 09:50 -0400, Alan Stern wrote: > > It seems that a better approach would be to have an ioctl which would: > > fail if there are any active user URBs; > > drop the usbfs PM reference so the device can suspend; > > block interruptibly until the device resumes; Thus we would require user space to have a thread for each device it wants to allow suspend for. [..] > What difference does it make if the URBs are killed by the user instead > of the kernel? We stay within the limits of the timing (as well as we can) and the case of a failed suspend is much easier to handle. Else we have an unlimited time between cessation of IO and going into suspend. > > And notify user space when the device is resumed. IMHO select() > > is the syscall designed for that. > > Apart from the difficulties mentioned above. Yes, I see. Regards Oliver