linux/drivers/media/usb/uvc
Philipp Zabel f9ffcb0a21 media: uvcvideo: Fix driver reference counting
kref_init initializes the reference count to 1, not 0. This additional
reference is never released since the conversion to reference counters.
As a result, uvc_delete is not called anymore when UVC cameras are
disconnected.
Fix this by adding an additional kref_put in uvc_disconnect and in the
probe error path. This also allows to remove the temporary additional
reference in uvc_unregister_video.

Fixes: 9d15cd958c ("media: uvcvideo: Convert from using an atomic variable to a reference count")

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-05-28 16:49:47 -04:00
..
Kconfig [media] uvc: Depend on VIDEO_V4L2 2013-06-24 22:54:40 -03:00
Makefile media: uvcvideo: Add a metadata device node 2018-01-04 06:41:47 -05:00
uvc_ctrl.c media: uvcvideo: Use parentheses around sizeof operand 2018-02-23 02:23:24 -05:00
uvc_debugfs.c [media] uvcvideo: Change result code of debugfs_init to void 2017-01-31 10:56:48 -02:00
uvc_driver.c media: uvcvideo: Fix driver reference counting 2018-05-28 16:49:47 -04:00
uvc_entity.c media: uvcvideo: Constify video_subdev structures 2017-08-20 08:10:24 -04:00
uvc_isight.c media: uvcvideo: Use internal kernel integer types 2018-02-23 02:20:52 -05:00
uvc_metadata.c media: uvcvideo: Add a metadata device node 2018-01-04 06:41:47 -05:00
uvc_queue.c media updates for v4.16-rc1 2018-02-06 11:27:48 -08:00
uvc_status.c media: uvcvideo: Use internal kernel integer types 2018-02-23 02:20:52 -05:00
uvc_v4l2.c media: uvc: to the right check at uvc_ioctl_enum_framesizes() 2018-03-23 08:37:27 -04:00
uvc_video.c media: uvcvideo: Fixed ktime_t to ns conversion 2018-02-23 02:24:29 -05:00
uvcvideo.h media: uvcvideo: Use internal kernel integer types 2018-02-23 02:20:52 -05:00