Message ID | 20220318211446.11543-3-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: videobuf2: Expose vb2_queue_is_busy() to drivers | expand |
Quoting Laurent Pinchart (2022-03-18 21:14:45) > Use the vb2_fop_release() helper to replace the open-coded version. The > video->lock is assigned to the queue lock, used by vb2_fop_release(), so > the only functional difference is that v4l2_fh_release() is now called > before vsp1_device_put(). This should be harmless. > Seems to check out. Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > --- > drivers/media/platform/renesas/vsp1/vsp1_video.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/drivers/media/platform/renesas/vsp1/vsp1_video.c b/drivers/media/platform/renesas/vsp1/vsp1_video.c > index 044eb5778820..8f53abc71db2 100644 > --- a/drivers/media/platform/renesas/vsp1/vsp1_video.c > +++ b/drivers/media/platform/renesas/vsp1/vsp1_video.c > @@ -1129,19 +1129,11 @@ static int vsp1_video_open(struct file *file) > static int vsp1_video_release(struct file *file) > { > struct vsp1_video *video = video_drvdata(file); > - struct v4l2_fh *vfh = file->private_data; > > - mutex_lock(&video->lock); > - if (video->queue.owner == vfh) { > - vb2_queue_release(&video->queue); > - video->queue.owner = NULL; > - } > - mutex_unlock(&video->lock); > + vb2_fop_release(file); > > vsp1_device_put(video->vsp1); > > - v4l2_fh_release(file); > - > file->private_data = NULL; > > return 0; > -- > Regards, > > Laurent Pinchart >
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_video.c b/drivers/media/platform/renesas/vsp1/vsp1_video.c index 044eb5778820..8f53abc71db2 100644 --- a/drivers/media/platform/renesas/vsp1/vsp1_video.c +++ b/drivers/media/platform/renesas/vsp1/vsp1_video.c @@ -1129,19 +1129,11 @@ static int vsp1_video_open(struct file *file) static int vsp1_video_release(struct file *file) { struct vsp1_video *video = video_drvdata(file); - struct v4l2_fh *vfh = file->private_data; - mutex_lock(&video->lock); - if (video->queue.owner == vfh) { - vb2_queue_release(&video->queue); - video->queue.owner = NULL; - } - mutex_unlock(&video->lock); + vb2_fop_release(file); vsp1_device_put(video->vsp1); - v4l2_fh_release(file); - file->private_data = NULL; return 0;
Use the vb2_fop_release() helper to replace the open-coded version. The video->lock is assigned to the queue lock, used by vb2_fop_release(), so the only functional difference is that v4l2_fh_release() is now called before vsp1_device_put(). This should be harmless. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> --- drivers/media/platform/renesas/vsp1/vsp1_video.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)