OSDN Git Service

media: videobuf2: always call poll_wait() on queues
authorAlexandre Courbot <gnurou@gmail.com>
Tue, 1 Dec 2020 12:44:41 +0000 (13:44 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Mon, 4 Jan 2021 12:12:46 +0000 (13:12 +0100)
commit575c52cc4cae8b35654ea2d934d04e649a95cc6f
tree7e0b25d7bd272d90c091b4aa1f5ead15cad4705a
parenta45c39b8295f39930095f5a3693762f3ea454205
media: videobuf2: always call poll_wait() on queues

do_poll()/do_select() seem to set the _qproc member of poll_table to
NULL the first time they are called on a given table, making subsequent
calls of poll_wait() on that table no-ops. This is a problem for vb2
which calls poll_wait() on the V4L2 queues' waitqueues only when a
queue-related event is requested, which may not necessarily be the case
during the first poll.

Fix this by making the call to poll_wait() happen first thing and
unconditionally in vb2_core_poll().

Signed-off-by: Alexandre Courbot <gnurou@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/common/videobuf2/videobuf2-core.c