Message ID | 20220829053316.19400-1-ming.qian@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: amphion: release m2m ctx when releasing vpu instance | expand |
Hi Ming, Nice, from my point off view you move v4l2_m2m_ctx_release into the right position (release function). checkpatch.pl also looks good. total: 0 errors, 0 warnings, 772 lines checked Looks good to me. Reviewed-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com> Regards, Tommaso On Mon, Aug 29, 2022 at 01:33:16PM +0800, Ming Qian wrote: > release m2m ctx in the callback function that > release the vpu instance, then there is no need > to add lock around releasing m2m ctx. > > Fixes: 3cd084519c6f ("media: amphion: add vpu v4l2 m2m support") > Signed-off-by: Ming Qian <ming.qian@nxp.com> > --- > drivers/media/platform/amphion/vpu_v4l2.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/drivers/media/platform/amphion/vpu_v4l2.c b/drivers/media/platform/amphion/vpu_v4l2.c > index 1f18289aa47a..99ad2f1c5a53 100644 > --- a/drivers/media/platform/amphion/vpu_v4l2.c > +++ b/drivers/media/platform/amphion/vpu_v4l2.c > @@ -688,6 +688,10 @@ static int vpu_v4l2_release(struct vpu_inst *inst) > inst->workqueue = NULL; > } > > + if (inst->fh.m2m_ctx) { > + v4l2_m2m_ctx_release(inst->fh.m2m_ctx); > + inst->fh.m2m_ctx = NULL; > + } > v4l2_ctrl_handler_free(&inst->ctrl_handler); > mutex_destroy(&inst->lock); > v4l2_fh_del(&inst->fh); > @@ -770,13 +774,6 @@ int vpu_v4l2_close(struct file *file) > > vpu_trace(vpu->dev, "tgid = %d, pid = %d, inst = %p\n", inst->tgid, inst->pid, inst); > > - vpu_inst_lock(inst); > - if (inst->fh.m2m_ctx) { > - v4l2_m2m_ctx_release(inst->fh.m2m_ctx); > - inst->fh.m2m_ctx = NULL; > - } > - vpu_inst_unlock(inst); > - > call_void_vop(inst, release); > vpu_inst_unregister(inst); > vpu_inst_put(inst); > -- > 2.37.1 >
diff --git a/drivers/media/platform/amphion/vpu_v4l2.c b/drivers/media/platform/amphion/vpu_v4l2.c index 1f18289aa47a..99ad2f1c5a53 100644 --- a/drivers/media/platform/amphion/vpu_v4l2.c +++ b/drivers/media/platform/amphion/vpu_v4l2.c @@ -688,6 +688,10 @@ static int vpu_v4l2_release(struct vpu_inst *inst) inst->workqueue = NULL; } + if (inst->fh.m2m_ctx) { + v4l2_m2m_ctx_release(inst->fh.m2m_ctx); + inst->fh.m2m_ctx = NULL; + } v4l2_ctrl_handler_free(&inst->ctrl_handler); mutex_destroy(&inst->lock); v4l2_fh_del(&inst->fh); @@ -770,13 +774,6 @@ int vpu_v4l2_close(struct file *file) vpu_trace(vpu->dev, "tgid = %d, pid = %d, inst = %p\n", inst->tgid, inst->pid, inst); - vpu_inst_lock(inst); - if (inst->fh.m2m_ctx) { - v4l2_m2m_ctx_release(inst->fh.m2m_ctx); - inst->fh.m2m_ctx = NULL; - } - vpu_inst_unlock(inst); - call_void_vop(inst, release); vpu_inst_unregister(inst); vpu_inst_put(inst);
release m2m ctx in the callback function that release the vpu instance, then there is no need to add lock around releasing m2m ctx. Fixes: 3cd084519c6f ("media: amphion: add vpu v4l2 m2m support") Signed-off-by: Ming Qian <ming.qian@nxp.com> --- drivers/media/platform/amphion/vpu_v4l2.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-)