Re: [PATCH] media: media videobuf2: Stop direct calls to queue num_buffers field

From: Tomasz Figa
Date: Thu Jan 18 2024 - 06:23:26 EST


On Tue, Jan 16, 2024 at 6:32 PM Benjamin Gaignard
<benjamin.gaignard@xxxxxxxxxxxxx> wrote:
>
>
> Le 16/01/2024 à 10:21, Hans Verkuil a écrit :
> > On 15/01/2024 18:08, Benjamin Gaignard wrote:
> >> 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: c838530d230b ("media: media videobuf2: Be more flexible on the number of queue stored buffers")
> >> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxxxxx>
> >> ---
> >> drivers/media/common/videobuf2/videobuf2-core.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
> >> index 41a832dd1426..b6bf8f232f48 100644
> >> --- a/drivers/media/common/videobuf2/videobuf2-core.c
> >> +++ b/drivers/media/common/videobuf2/videobuf2-core.c
> >> @@ -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;
> >> }
> > There is another case in vb2_ioctl_create_bufs() where num_buffers is accessed directly.
> > Can you fix that one as well?
>
> It is removed by the patch I have send just after this one:
> "media: core: Refactor vb2_ioctl_create_bufs() to always set capabilities flags"

I'd prefer that to be also included in this fix, so that it's all
logically grouped together. Actually Hans also ended up including that
change in his patch, without the commit message mentioning it.

Best regards,
Tomasz