[media] v4l2-ctrls: Correctly destroy mutex in v4l2_ctrl_handler_free()
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 29 May 2017 14:45:43 +0000 (11:45 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 7 Jun 2017 11:53:42 +0000 (08:53 -0300)
The mutex that was initialised in v4l2_ctrl_handler_init_class() was not
destroyed in v4l2_ctrl_handler_free(). Do that.

Additionally, explicitly refer to the ctrl handler's mutex in mutex
initialisation for clarity.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/v4l2-core/v4l2-ctrls.c

index dec55d53d24aa81b306cd26e15957d2f409e73c7..5aed7bd20ad255f0634616842eef748925a83444 100644 (file)
@@ -1739,8 +1739,8 @@ int v4l2_ctrl_handler_init_class(struct v4l2_ctrl_handler *hdl,
                                 unsigned nr_of_controls_hint,
                                 struct lock_class_key *key, const char *name)
 {
+       mutex_init(&hdl->_lock);
        hdl->lock = &hdl->_lock;
-       mutex_init(hdl->lock);
        lockdep_set_class_and_name(hdl->lock, key, name);
        INIT_LIST_HEAD(&hdl->ctrls);
        INIT_LIST_HEAD(&hdl->ctrl_refs);
@@ -1780,6 +1780,7 @@ void v4l2_ctrl_handler_free(struct v4l2_ctrl_handler *hdl)
        hdl->cached = NULL;
        hdl->error = 0;
        mutex_unlock(hdl->lock);
+       mutex_destroy(&hdl->_lock);
 }
 EXPORT_SYMBOL(v4l2_ctrl_handler_free);