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]/