Calling pm_runtime_get_sync increments the counter even in case of failure, causing incorrect ref count. Call pm_runtime_put_sync if pm_runtime_get_sync fails.
Signed-off-by: Navid Emamdoost <[email protected]> --- drivers/mfd/arizona-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c index f73cf76d1373..5b3191b6534a 100644 --- a/drivers/mfd/arizona-core.c +++ b/drivers/mfd/arizona-core.c @@ -46,8 +46,10 @@ int arizona_clk32k_enable(struct arizona *arizona) switch (arizona->pdata.clk32k_src) { case ARIZONA_32KZ_MCLK1: ret = pm_runtime_get_sync(arizona->dev); - if (ret != 0) + if (ret != 0) { + pm_runtime_put_sync(arizona->dev); goto err_ref; + } ret = clk_prepare_enable(arizona->mclk[ARIZONA_MCLK1]); if (ret != 0) { pm_runtime_put_sync(arizona->dev); -- 2.17.1

