Em Thu,  6 Sep 2012 17:23:57 +0200
Peter Senna Tschudin <peter.se...@gmail.com> escreveu:

> From: Peter Senna Tschudin <peter.se...@gmail.com>
> 
> 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.se...@gmail.com>
> 
> ---
>  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 majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html




Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to