]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: rc: st_rc: Fix reset control resource leak
authorHaotian Zhang <vulab@iscas.ac.cn>
Fri, 31 Oct 2025 06:03:32 +0000 (14:03 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:10:01 +0000 (13:10 +0100)
commit 1240abf4b71f632f0117b056e22488e4d9808938 upstream.

The driver calls reset_control_get_optional_exclusive() but never calls
reset_control_put() in error paths or in the remove function. This causes
a resource leak when probe fails after successfully acquiring the reset
control, or when the driver is unloaded.

Switch to devm_reset_control_get_optional_exclusive() to automatically
manage the reset control resource.

Fixes: a4b80242d046 ("media: st-rc: explicitly request exclusive reset control")
Cc: stable@vger.kernel.org
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/rc/st_rc.c

index d79d1e3996b25f11894fa49804cb253399abf7de..2665286e3899ac48ba2bfa3eaa30a603b789e2ff 100644 (file)
@@ -287,7 +287,7 @@ static int st_rc_probe(struct platform_device *pdev)
        else
                rc_dev->rx_base = rc_dev->base;
 
-       rc_dev->rstc = reset_control_get_optional_exclusive(dev, NULL);
+       rc_dev->rstc = devm_reset_control_get_optional_exclusive(dev, NULL);
        if (IS_ERR(rc_dev->rstc)) {
                ret = PTR_ERR(rc_dev->rstc);
                goto err;