On 2022/07/23 4:15, Fabio M. De Francesco wrote: > I had misunderstood easily what you said because I had no context. I have > not yet all the necessary context to prepare a "real" patch. As said, it > was only a "proof of concept". Although current problem is that iforce_usb_disconnect() being blocked on dev->mutex which was held by the caller of iforce_close(), I worry that a proper fix requires something like commit db264d4c66c0fe00 ("media: imon: reorganize serialization") in order to defer usb_free_urb(iforce_usb->irq); usb_free_urb(iforce_usb->out); kfree(iforce_usb); part in iforce_usb_disconnect(), given that iforce_close() (which needs to perform urb operation) might be called even after iforce_usb_disconnect() completed. Device file's close callback being not prepared for disconnect event (that is, code assumes that close happens only before disconnect happens) might be frequently observed problem in USB drivers...