usb: gadget: uvc: Fix the wrong v4l2_device_unregister call
authorZqiang <qiang.zhang@windriver.com>
Sun, 27 Sep 2020 08:01:16 +0000 (16:01 +0800)
committerFelipe Balbi <balbi@kernel.org>
Fri, 2 Oct 2020 06:57:45 +0000 (09:57 +0300)
If an error occurred before calling the 'v4l2_device_register' func,
and then goto error, but no need to call 'v4l2_device_unregister'
func.

Signed-off-by: Zqiang <qiang.zhang@windriver.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/gadget/function/f_uvc.c

index 0b97126..44b4352 100644 (file)
@@ -740,20 +740,20 @@ uvc_function_bind(struct usb_configuration *c, struct usb_function *f)
        /* Initialise video. */
        ret = uvcg_video_init(&uvc->video, uvc);
        if (ret < 0)
-               goto error;
+               goto v4l2_error;
 
        /* Register a V4L2 device. */
        ret = uvc_register_video(uvc);
        if (ret < 0) {
                uvcg_err(f, "failed to register video device\n");
-               goto error;
+               goto v4l2_error;
        }
 
        return 0;
 
-error:
+v4l2_error:
        v4l2_device_unregister(&uvc->v4l2_dev);
-
+error:
        if (uvc->control_req)
                usb_ep_free_request(cdev->gadget->ep0, uvc->control_req);
        kfree(uvc->control_buf);