From 3afe252aa94d54feb3dab2a6202e53fd653b81a0 Mon Sep 17 00:00:00 2001 From: Michael Grzeschik Date: Sun, 17 Oct 2021 23:50:17 +0200 Subject: [PATCH] UPSTREAM: usb: gadget: uvc: ensure the vdev is unset 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 Reviewed-by: Paul Elder Signed-off-by: Michael Grzeschik Link: https://lore.kernel.org/r/20211017215017.18392-7-m.grzeschik@pengutronix.de Signed-off-by: Greg Kroah-Hartman Signed-off-by: William Wu (cherry picked from commit e4ce9ed835bcaf4cd3230a53a79645986c25ce0f) Change-Id: I4ecb8c85a4d838254b68ea23284e35b04b9678af --- drivers/usb/gadget/function/f_uvc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c index 4b67731118b7..f37f2228705c 100644 --- a/drivers/usb/gadget/function/f_uvc.c +++ b/drivers/usb/gadget/function/f_uvc.c @@ -586,6 +586,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.fops = &uvc_v4l2_fops; uvc->vdev.ioctl_ops = &uvc_v4l2_ioctl_ops;