]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: v4l2-ctrls: Don't reset handler's error in v4l2_ctrl_handler_free()
authorSakari Ailus <sakari.ailus@linux.intel.com>
Sat, 23 Aug 2025 01:46:19 +0000 (21:46 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:22:57 +0000 (16:22 +0200)
[ Upstream commit 5a0400aca5fa7c6b8ba456c311a460e733571c88 ]

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>
[ v4l2-ctrls.c => v4l2-ctrls-core.c ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/v4l2-core/v4l2-ctrls.c

index a84136f76d8ec8ed04ddb78ade5cee3376dd8a35..e754bb2a8a4e96fb4b68346e1cbd411404b763dd 100644 (file)
@@ -2388,7 +2388,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);
 }