• Paul Cassella's avatar
    [media] ivtv: yuv: handle get_user_pages() -errno returns · 7fd4b41f
    Paul Cassella authored
    get_user_pages() may return -errno, such as -EFAULT.  So don't blindly use
    its return value as an offset into dma->map[] for the next get_user_pages()
    call.  Since we'll give up and return an error if either fails, don't even
    make the second call if the first failed to give us exactly what we were
    looking for.
    
    The old code would also call put_page() on as many elements of dma->map[]
    as we'd asked for, regardless of how many were valid.
    
    [Andy Walls modified this patch to return -EFAULT instead of -EINVAL
    as Paul's observation "I'm not sure -EINVAL is the best return code vs
    -EFAULT or -ENOMEM, [...]" was correct.  The return value bubbles up
    as a return code for write(), for which the V4L2 API spec indicates
    EINVAL is incorrect and EFAULT is correct.]
    Signed-off-by: default avatarPaul Cassella <fortytwo-ivtv@maneteren.bigw.org>
    Signed-off-by: default avatarAndy Walls <awalls@md.metrocast.net>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    7fd4b41f
ivtv-yuv.c 37.5 KB