From: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
To: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Cc: Pawel Osciak <pawel@osciak.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Kyungmin Park <kyungmin.park@samsung.com>,
<linux-media@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Junghak Sung <jh1009.sung@samsung.com>, <stable@vger.kernel.org>
Subject: Re: [PATCH] media: vb2: Fix regression on poll() for RW mode
Date: Fri, 22 Apr 2016 09:16:22 -0300 [thread overview]
Message-ID: <20160422091622.7b858565@recife.lan> (raw)
In-Reply-To: <1461230116-6909-1-git-send-email-ricardo.ribalda@gmail.com>
Em Thu, 21 Apr 2016 11:15:16 +0200
Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> escreveu:
> When using a device is read/write mode, vb2 does not handle properly the
> first select/poll operation. It allways return POLLERR.
>
> The reason for this is that when this code has been refactored, some of
> the operations have changed their order, and now fileio emulator is not
> started by poll, due to a previous check.
>
> Reported-by: Dimitrios Katsaros <patcherwork@gmail.com>
> Cc: Junghak Sung <jh1009.sung@samsung.com>
> Cc: stable@vger.kernel.org
> Fixes: 49d8ab9feaf2 ("media] media: videobuf2: Separate vb2_poll()")
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> ---
> drivers/media/v4l2-core/videobuf2-core.c | 8 ++++++++
> drivers/media/v4l2-core/videobuf2-v4l2.c | 8 --------
> 2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c
> index 5d016f496e0e..199c65dbe330 100644
> --- a/drivers/media/v4l2-core/videobuf2-core.c
> +++ b/drivers/media/v4l2-core/videobuf2-core.c
> @@ -2298,6 +2298,14 @@ unsigned int vb2_core_poll(struct vb2_queue *q, struct file *file,
> return POLLERR;
>
> /*
> + * For compatibility with vb1: if QBUF hasn't been called yet, then
> + * return POLLERR as well. This only affects capture queues, output
> + * queues will always initialize waiting_for_buffers to false.
> + */
> + if (q->waiting_for_buffers && (req_events & (POLLIN | POLLRDNORM)))
> + return POLLERR;
> +
No, we shouldn't do VB1 backward compatibility at the core, as this
is a special case that only applies for V4L2. The hole idea of splitting
the core and the v4l2-specific code is to allow VB2 to be used on other
places, like on DVB.
So, we need some other approach that would keep this specific to V4L2.
> + /*
> * For output streams you can call write() as long as there are fewer
> * buffers queued than there are buffers available.
> */
> diff --git a/drivers/media/v4l2-core/videobuf2-v4l2.c b/drivers/media/v4l2-core/videobuf2-v4l2.c
> index 91f552124050..c9bad9ef2104 100644
> --- a/drivers/media/v4l2-core/videobuf2-v4l2.c
> +++ b/drivers/media/v4l2-core/videobuf2-v4l2.c
> @@ -818,14 +818,6 @@ unsigned int vb2_poll(struct vb2_queue *q, struct file *file, poll_table *wait)
> poll_wait(file, &fh->wait, wait);
> }
>
> - /*
> - * For compatibility with vb1: if QBUF hasn't been called yet, then
> - * return POLLERR as well. This only affects capture queues, output
> - * queues will always initialize waiting_for_buffers to false.
> - */
> - if (q->waiting_for_buffers && (req_events & (POLLIN | POLLRDNORM)))
> - return POLLERR;
> -
> return res | vb2_core_poll(q, file, wait);
> }
> EXPORT_SYMBOL_GPL(vb2_poll);
--
Thanks,
Mauro
prev parent reply other threads:[~2016-04-22 12:16 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-21 9:15 [PATCH] media: vb2: Fix regression on poll() for RW mode Ricardo Ribalda Delgado
2016-04-22 9:19 ` Hans Verkuil
[not found] ` <CAPybu_06SQ+sWzkP0Xo0iwRxu7vjMSk1b4f+E_9n+69b9A4Dww@mail.gmail.com>
2016-04-22 9:49 ` Hans Verkuil
2016-04-22 12:31 ` Mauro Carvalho Chehab
2016-04-22 12:37 ` Hans Verkuil
2016-04-22 14:21 ` Mauro Carvalho Chehab
2016-04-22 14:31 ` Hans Verkuil
2016-04-22 14:48 ` Mauro Carvalho Chehab
2016-04-22 14:56 ` Hans Verkuil
2016-04-22 15:21 ` Mauro Carvalho Chehab
2016-04-22 16:45 ` Hans Verkuil
2016-04-22 17:46 ` Mauro Carvalho Chehab
2016-04-22 12:16 ` Mauro Carvalho Chehab [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160422091622.7b858565@recife.lan \
--to=mchehab@osg.samsung.com \
--cc=jh1009.sung@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=pawel@osciak.com \
--cc=ricardo.ribalda@gmail.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.