Re: [PATCH] counter: ti-eqep: fix refcount leak in ti_eqep_probe()

William Breathitt Gray <[email protected]>
Newsgroups org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <[email protected]>
On Thu, Jun 04, 2026 at 09:40:36AM +0000, Wentao Liang wrote:
> After a successful pm_runtime_get_sync(), ti_eqep_probe() can fail
> if devm_clk_get_enabled() returns an error.  In that case the
> runtime PM reference is never released, causing a refcount leak.
> 
> Fix this by adding pm_runtime_put_sync() and pm_runtime_disable()
> calls before returning the error in the clock enable failure path.
> 
> The same cleanup pattern is already used when counter_add() fails,
> so this change makes the error handling consistent.
> 
> Cc: [email protected]
> Fixes: 0cf81c73e4c6 ("counter: ti-eqep: enable clock at probe")
> Signed-off-by: Wentao Liang <[email protected]>
> ---
>  drivers/counter/ti-eqep.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/counter/ti-eqep.c b/drivers/counter/ti-eqep.c
> index d21c157e531a..84fbf500b0f8 100644
> --- a/drivers/counter/ti-eqep.c
> +++ b/drivers/counter/ti-eqep.c
> @@ -548,8 +548,11 @@ static int ti_eqep_probe(struct platform_device *pdev)
>  	pm_runtime_get_sync(dev);
> 
>  	clk = devm_clk_get_enabled(dev, NULL);
> -	if (IS_ERR(clk))
> +	if (IS_ERR(clk)) {
> +		pm_runtime_put_sync(dev);
> +		pm_runtime_disable(dev);
>  		return dev_err_probe(dev, PTR_ERR(clk), "failed to enable clock\n");
> +	}
> 
>  	err = counter_add(counter);
>  	if (err < 0) {
> --
> 2.34.1
> 

Hello Wentao,

This seems similar to another patch we're working on.[^1] I recommend
reviewing and commenting on that thread so we can consolidate there.

Thanks,

William Breathitt Gray

[^1]: https://lore.kernel.org/all/[email protected]/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.