On Wed, 28 Apr 2021 16:51:31 +0200 Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> wrote: > The pm_runtime_get_sync() internally increments the > dev->power.usage_count without decrementing it, even on errors. > Replace it by the new pm_runtime_resume_and_get(), introduced by: > commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter") > in order to properly decrement the usage counter and avoid memory > leaks. > > While here, fix the return contition of mtk_mdp_m2m_start_streaming(), > as it doesn't make any sense to return 0 if the PM runtime failed > to resume. > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > --- > drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c b/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c > index ace4528cdc5e..f14779e7596e 100644 > --- a/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c > +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c > @@ -391,12 +391,12 @@ static int mtk_mdp_m2m_start_streaming(struct vb2_queue *q, unsigned int count) > struct mtk_mdp_ctx *ctx = q->drv_priv; > int ret; > > - ret = pm_runtime_get_sync(&ctx->mdp_dev->pdev->dev); > + ret = pm_runtime_resume_and_get(&ctx->mdp_dev->pdev->dev); > if (ret < 0) > - mtk_mdp_dbg(1, "[%d] pm_runtime_get_sync failed:%d", > + mtk_mdp_dbg(1, "[%d] pm_runtime_resume_and_get failed:%d", > ctx->id, ret); > > - return 0; > + return ret; > } > > static void *mtk_mdp_m2m_buf_remove(struct mtk_mdp_ctx *ctx,