Em Fri, 17 Nov 2017 11:08:01 -0200 Gustavo Padovan <gustavo@xxxxxxxxxxx> escreveu: > 2017-11-17 Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>: > > > Em Fri, 17 Nov 2017 15:49:23 +0900 > > Alexandre Courbot <acourbot@xxxxxxxxxxxx> escreveu: > > > > > > @@ -178,6 +179,12 @@ static int vb2_queue_or_prepare_buf(struct > > > > vb2_queue *q, struct v4l2_buffer *b, > > > > return -EINVAL; > > > > } > > > > > > > > + if ((b->fence_fd != 0 && b->fence_fd != -1) && > > > > > > Why do we need to consider both values invalid? Can 0 ever be a valid fence > > > fd? > > > > Programs that don't use fences will initialize reserved2/fence_fd field > > at the uAPI call to zero. > > > > So, I guess using fd=0 here could be a problem. Anyway, I would, instead, > > do: > > > > if ((b->fence_fd < 1) && > > ... > > > > as other negative values are likely invalid as well. > > We are checking when the fence_fd is set but the flag wasn't. Checking > for < 1 is exactly the opposite. so we keep as is or do it fence_fd > 0. Ah, yes. Anyway, I would stick with: if ((b->fence_fd > 0) && ... > > Gustavo -- Thanks, Mauro