usb: gadget: uvc: ensure the vdev is unset
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Sun, 17 Oct 2021 21:50:17 +0000 (23:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Oct 2021 10:58:57 +0000 (12:58 +0200)
Since the uvc video device is created on demand, we have to ensure
that the struct is always zeroed. Otherwise the previous settings
might collide with the new values.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20211017215017.18392-7-m.grzeschik@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_uvc.c

index e6de56a..71bb5e4 100644 (file)
@@ -417,6 +417,7 @@ uvc_register_video(struct uvc_device *uvc)
        int ret;
 
        /* TODO reference counting. */
+       memset(&uvc->vdev, 0, sizeof(uvc->video));
        uvc->vdev.v4l2_dev = &uvc->v4l2_dev;
        uvc->vdev.v4l2_dev->dev = &cdev->gadget->dev;
        uvc->vdev.fops = &uvc_v4l2_fops;