41 lines
1.6 KiB
Diff
41 lines
1.6 KiB
Diff
From bb8fada608c868a04288371c76dd387bb9ce5101 Mon Sep 17 00:00:00 2001
|
|
From: Sakari Ailus <sakari.ailus@linux.intel.com>
|
|
Date: Thu, 8 May 2025 18:55:38 +0300
|
|
Subject: media: v4l2-ctrls: Don't reset handler's error in
|
|
v4l2_ctrl_handler_free()
|
|
|
|
It's a common pattern in drivers to free the control handler's resources
|
|
and then return the handler's error code on drivers' error handling paths.
|
|
Alas, the v4l2_ctrl_handler_free() function also zeroes the error field,
|
|
effectively indicating successful return to the caller.
|
|
|
|
There's no apparent need to touch the error field while releasing the
|
|
control handler's resources and cleaning up stale pointers. Not touching
|
|
the handler's error field is a more certain way to address this problem
|
|
than changing all the users, in which case the pattern would be likely to
|
|
re-emerge in new drivers.
|
|
|
|
Do just that, don't touch the control handler's error field in
|
|
v4l2_ctrl_handler_free().
|
|
|
|
Fixes: 0996517cf8ea ("V4L/DVB: v4l2: Add new control handling framework")
|
|
Cc: stable@vger.kernel.org
|
|
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
|
|
Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
---
|
|
drivers/media/v4l2-core/v4l2-ctrls-core.c | 1 -
|
|
1 file changed, 1 deletion(-)
|
|
|
|
--- a/drivers/media/v4l2-core/v4l2-ctrls-core.c
|
|
+++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c
|
|
@@ -1661,7 +1661,6 @@ void v4l2_ctrl_handler_free(struct v4l2_
|
|
kvfree(hdl->buckets);
|
|
hdl->buckets = NULL;
|
|
hdl->cached = NULL;
|
|
- hdl->error = 0;
|
|
mutex_unlock(hdl->lock);
|
|
mutex_destroy(&hdl->_lock);
|
|
}
|