pm_runtime_get_sync() will increase the rumtime PM counter even it returns an error. Thus a pairing decrement is needed to prevent refcount leak. Fix this by replacing this API with pm_runtime_resume_and_get(), which will not change the runtime PM counter on error. Signed-off-by: Yongzhi Liu <lyz_cs@xxxxxxxxxx> --- drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c index 242a5fd..aa64f45 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c @@ -1690,7 +1690,7 @@ static int etnaviv_gpu_bind(struct device *dev, struct device *master, goto out_workqueue; #ifdef CONFIG_PM - ret = pm_runtime_get_sync(gpu->dev); + ret = pm_runtime_resume_and_get(gpu->dev); #else ret = etnaviv_gpu_clk_enable(gpu); #endif -- 2.7.4