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@pku.edu.cn --- 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
dri-devel@lists.freedesktop.org