summaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/function/f_uvc.c
diff options
context:
space:
mode:
authorMichael Grzeschik <m.grzeschik@pengutronix.de>2022-09-30 14:28:39 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-09-30 15:07:20 +0200
commit3180d827c807d8d6e5d6ba4f2e08eed9efa083af (patch)
tree92bfaf2fe82d6f2862e851fb973d81a8353b0e66 /drivers/usb/gadget/function/f_uvc.c
parentusb: gadget: uvc: Fix argument to sizeof() in uvc_register_video() (diff)
downloadlinux-3180d827c807d8d6e5d6ba4f2e08eed9efa083af.tar.xz
linux-3180d827c807d8d6e5d6ba4f2e08eed9efa083af.zip
usb: gadget: uvc: don't put item still in use
With the patch "588b9e85609b (usb: gadget: uvc: add v4l2 enumeration api calls)" the driver is keeping a list of configfs entries currently configured. The list is used in uvc_v4l2 on runtime. The driver now is giving back the list item just after it was referenced with config_item_put. It also calls config_item_put on uvc_free, which is the only and right place to give back the reference. This patch fixes the issue by removing the extra config_item_put in uvc_alloc. Fixes: 588b9e85609b (usb: gadget: uvc: add v4l2 enumeration api calls) Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Link: https://lore.kernel.org/r/20220930122839.1747279-1-m.grzeschik@pengutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/gadget/function/f_uvc.c')
-rw-r--r--drivers/usb/gadget/function/f_uvc.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c
index 836601227155..6e196e06181e 100644
--- a/drivers/usb/gadget/function/f_uvc.c
+++ b/drivers/usb/gadget/function/f_uvc.c
@@ -995,7 +995,6 @@ static struct usb_function *uvc_alloc(struct usb_function_instance *fi)
goto err_config;
uvc->header = to_uvcg_streaming_header(h);
- config_item_put(h);
if (!uvc->header->linked) {
mutex_unlock(&opts->lock);
kfree(uvc);