Hi Sergey On Tue, 26 Mar 2024 at 09:42, Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> wrote: > > On (24/03/25 16:31), Ricardo Ribalda wrote: > > drivers/media/usb/uvc/uvc_driver.c | 13 ++------- > > drivers/media/usb/uvc/uvc_status.c | 57 ++++++++++++++++++++++++++++++++++++-- > > drivers/media/usb/uvc/uvc_v4l2.c | 22 ++++----------- > > drivers/media/usb/uvc/uvcvideo.h | 10 ++++--- > > 4 files changed, 68 insertions(+), 34 deletions(-) > > > > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c > > index 17fc945c8deb6..b579644ac0745 100644 > > --- a/drivers/media/usb/uvc/uvc_driver.c > > +++ b/drivers/media/usb/uvc/uvc_driver.c > > @@ -2116,7 +2116,6 @@ static int uvc_probe(struct usb_interface *intf, > > INIT_LIST_HEAD(&dev->streams); > > kref_init(&dev->ref); > > atomic_set(&dev->nmappings, 0); > > - mutex_init(&dev->lock); > > Where is this getting initialized? in uvc_status_init((). It is now called status_lock But it should be init before (ep == NULL)... otherwise it will not work in devices without the int_ep. Let me send a new version Thanks! -- Ricardo Ribalda