On 29/03/2021 02:59, Dianlong Li wrote: > The variable q->num_buffers records the number of buffers previously > applied for, and the variable allocated_buffers records the number of > buffers applied for this time, so the total number should be the sum > of these two buffers. > > Signed-off-by: Dianlong Li <dianlong_lee@xxxxxxx> > --- > 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 4eab6d81cce1..2716c4138655 100644 > --- a/drivers/media/common/videobuf2/videobuf2-core.c > +++ b/drivers/media/common/videobuf2/videobuf2-core.c > @@ -836,7 +836,7 @@ int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory, > } > > mutex_lock(&q->mmap_lock); > - q->num_buffers = allocated_buffers; > + q->num_buffers += allocated_buffers; > > if (ret < 0) { > /* > Nacked-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> The VIDIOC_REQBUFS ioctl releases all existing buffers (if any) and allocates new buffers. So the existing code is correct. Regards, Hans