Message ID | 20220929144124.1365686-1-m.grzeschik@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | usb: gadget: uvc: don't put item still in use | expand |
On Thu, Sep 29, 2022 at 04:41:24PM +0200, Michael Grzeschik wrote: > With the patch "15a286a0bb08 (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: 15a286a0bb08 (usb: gadget: uvc: add v4l2 enumeration api calls) This is not a commit in any of my trees. Are you sure it's a valid one? thanks, greg k-h
diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c index e6948cf8def30b..8bc591431d153e 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);
With the patch "15a286a0bb08 (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: 15a286a0bb08 (usb: gadget: uvc: add v4l2 enumeration api calls) Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> --- drivers/usb/gadget/function/f_uvc.c | 1 - 1 file changed, 1 deletion(-)