decrement struct v4l2_device refcount on device urnegister
commit bedf8bcf6b4f90a6e31add3721a2e71877289381 introduced reference counting for struct v4l2_device.
In v4l2_device_register() a call to kref_init() initializes reference count to 1, but in v4l2_device_unregister() there is no corresponding decrement.
End result is that reference count never reaches zero and v4l2_device_release() is never called, not even on videodev module unload.
Fix this by adding reference counter decrement to v4l2_device_unregister().
Signed-off-by Maciej Szmigiero <[email protected]>
drivers/media/video/v4l2-device.c +0 -0
index c72856c..eb39af9 100644
--- a/drivers/media/video/v4l2-device.c
+++ b/drivers/media/video/v4l2-device.c
@@ -131,6 +131,8 @@ void v4l2_device_unregister(struct v4l2_device *v4l2_dev)
}
#endif
}
+
+ v4l2_device_put(v4l2_dev);
}
EXPORT_SYMBOL_GPL(v4l2_device_unregister);