Em Thu, 6 Sep 2012 17:23:57 +0200 Peter Senna Tschudin <peter.senna@xxxxxxxxx> escreveu: > From: Peter Senna Tschudin <peter.senna@xxxxxxxxx> > > Convert a nonnegative error return code to a negative one, as returned > elsewhere in the function. > > A simplified version of the semantic match that finds this problem is as > follows: (http://coccinelle.lip6.fr/) > > // <smpl> > ( > if@p1 (\(ret < 0\|ret != 0\)) > { ... return ret; } > | > ret@p1 = 0 > ) > ... when != ret = e1 > when != &ret > *if(...) > { > ... when != ret = e2 > when forall > return ret; > } > > // </smpl> > > Signed-off-by: Peter Senna Tschudin <peter.senna@xxxxxxxxx> > > --- > drivers/media/v4l2-core/videobuf2-core.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c > index 4da3df6..f6bc240 100644 > --- a/drivers/media/v4l2-core/videobuf2-core.c > +++ b/drivers/media/v4l2-core/videobuf2-core.c > @@ -1876,8 +1876,10 @@ static int __vb2_init_fileio(struct vb2_queue *q, int read) > */ > for (i = 0; i < q->num_buffers; i++) { > fileio->bufs[i].vaddr = vb2_plane_vaddr(q->bufs[i], 0); > - if (fileio->bufs[i].vaddr == NULL) > + if (fileio->bufs[i].vaddr == NULL) { > + ret = -EFAULT; > goto err_reqbufs; > + } Had you test this patch? I suspect it breaks the driver, as there are failures under streaming handling that are acceptable, as it may indicate that userspace was not able to handle all queued frames in time. On such cases, what the Kernel does is to just discard the frame. Userspace is able to detect it, by looking inside the timestamp added on each frame. > fileio->bufs[i].size = vb2_plane_size(q->bufs[i], 0); > } > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html Cheers, Mauro -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html