]> www.infradead.org Git - users/willy/pagecache.git/commit
media: vb2: vb2_core_queue_init(): sanity check lock and wait_prepare/finish
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 2 Sep 2024 14:04:54 +0000 (16:04 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sat, 12 Oct 2024 13:54:07 +0000 (15:54 +0200)
commitc780d01cf1a68182d515ea46a7c85746435a4004
tree992bb6fbcf2cd3098e017b79fa5269f935d69322
parent7e8ca483c0a96da6564bf7c57390e7c071fb5bae
media: vb2: vb2_core_queue_init(): sanity check lock and wait_prepare/finish

Add two new checks:

1) wait_prepare and wait_finish callbacks are either both present or
   both unset, you can't mix.
2) if lock == NULL, then wait_prepare (and due to check 1 also
   wait_finish) must be present.

These checks should prevent the case where lock == NULL, but there
is no way to release/reacquire whatever lock is used when waiting
for a buffer to arrive in VIDIOC_DQBUF.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/common/videobuf2/videobuf2-core.c