media: media videobuf2: Stop direct calls to queue num_buffers field
authorBenjamin Gaignard <benjamin.gaignard@collabora.com>
Thu, 18 Jan 2024 12:14:52 +0000 (13:14 +0100)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 24 Jan 2024 16:27:51 +0000 (17:27 +0100)
Use vb2_get_num_buffers() to avoid using queue num_buffers field directly.
This allows us to change how the number of buffers is computed in the
future.

Fixes: d055a76c0065 ("media: core: Report the maximum possible number of buffers for the queue")
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Acked-by: Tomasz Figa <tfiga@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/common/videobuf2/videobuf2-core.c
drivers/media/common/videobuf2/videobuf2-v4l2.c

index 41a832dd1426bae695dc90b385976b2bf4b7a304..b6bf8f232f4880ffcd1f7ff0bd00ddb0bbebccb9 100644 (file)
@@ -989,7 +989,7 @@ int vb2_core_create_bufs(struct vb2_queue *q, enum vb2_memory memory,
        bool no_previous_buffers = !q_num_bufs;
        int ret = 0;
 
-       if (q->num_buffers == q->max_num_buffers) {
+       if (q_num_bufs == q->max_num_buffers) {
                dprintk(q, 1, "maximum number of buffers already allocated\n");
                return -ENOBUFS;
        }
index 54d572c3b515d67722c4dbe7490437bc83c30b96..6380155d8575f53b1c1b385e967e2fd063560ea1 100644 (file)
@@ -1029,7 +1029,7 @@ int vb2_ioctl_create_bufs(struct file *file, void *priv,
        int res = vb2_verify_memory_type(vdev->queue, p->memory,
                        p->format.type);
 
-       p->index = vdev->queue->num_buffers;
+       p->index = vb2_get_num_buffers(vdev->queue);
        fill_buf_caps(vdev->queue, &p->capabilities);
        validate_memory_flags(vdev->queue, p->memory, &p->flags);
        /*