On Thu May 8 18:55:38 2025 +0300, Sakari Ailus wrote: > 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: sta...@vger.kernel.org > Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com> > Reviewed-by: Hans Verkuil <hverk...@xs4all.nl> > Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> > Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>
Patch committed. Thanks, Hans Verkuil drivers/media/v4l2-core/v4l2-ctrls-core.c | 1 - 1 file changed, 1 deletion(-) --- diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2-core/v4l2-ctrls-core.c index b45809a82f9a..d28596c720d8 100644 --- 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_ctrl_handler *hdl) kvfree(hdl->buckets); hdl->buckets = NULL; hdl->cached = NULL; - hdl->error = 0; mutex_unlock(hdl->lock); mutex_destroy(&hdl->_lock); }