[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1504822731.11339.2.camel@collabora.com>
Date: Thu, 07 Sep 2017 19:18:51 -0300
From: Gustavo Padovan <gustavo.padovan@...labora.com>
To: Hans Verkuil <hverkuil@...all.nl>,
Gustavo Padovan <gustavo@...ovan.org>,
linux-media@...r.kernel.org
Cc: Mauro Carvalho Chehab <mchehab@....samsung.com>,
Shuah Khan <shuahkh@....samsung.com>,
linux-kernel@...r.kernel.org,
Alexander Viro <viro@...iv.linux.org.uk>,
linux-fsdevel@...r.kernel.org,
Riley Andrews <riandrews@...roid.com>
Subject: Re: [PATCH v3 14/15] fs/files: export close_fd() symbol
On Fri, 2017-09-08 at 00:09 +0200, Hans Verkuil wrote:
> On 09/07/2017 08:42 PM, Gustavo Padovan wrote:
> > From: Gustavo Padovan <gustavo.padovan@...labora.com>
> >
> > Rename __close_fd() to close_fd() and export it to be able close
> > files
> > in modules using file descriptors.
> >
> > The usecase that motivates this change happens in V4L2 where we
> > send
> > events to userspace with a fd that has file installed in it. But if
> > for
> > some reason we have to cancel the video stream we need to close the
> > files
> > that haven't been shared with userspace yet. Thus the export of
> > close_fd() becomes necessary.
> >
> > fd_install() happens when we call an ioctl to queue a buffer, but
> > we only
> > share the fd with userspace later, and that may happen in a kernel
> > thread
> > instead.
>
> This isn't the way to do this.
>
> You should only create the out fence file descriptor when userspace
> dequeues
> (i.e. calls VIDIOC_DQEVENT) the BUF_QUEUED event. That's when you
> give it to
> userspace and at that moment closing the fd is the responsibility of
> userspace.
> There is no point creating it earlier anyway since userspace can't
> get to it
> until it dequeues the event.
>
> It does mean some more work in the V4L2 core since you need to hook
> into the
> DQEVENT code in order to do this.
Right, that makes a lot more sense. I'll change the implementation so
it can reflecting that. Thanks.
Gustavo
Powered by blists - more mailing lists