• H
    [media] vb2: check if vb2_fop_write/read is allowed · ff05cb4b
    Hans Verkuil 提交于
    Return -EINVAL if read() or write() is not supported by the queue. This
    makes it possible to provide both vb2_fop_read and vb2_fop_write in a
    struct v4l2_file_operations since the vb2_fop_* function will check if
    the file operation is allowed.
    
    A similar check exists in __vb2_init_fileio() which is called from
    __vb2_perform_fileio(), but that check is only done if no file I/O is
    active. So the sequence of read() followed by write() would be allowed,
    which is obviously a bug.
    
    In addition, vb2_fop_write/read should always return -EINVAL if the
    operation is not allowed, and by putting the check in the lower levels
    of the code it is possible that other error codes are returned (EBUSY
    or ERESTARTSYS).
    
    All these issues are avoided by just doing a quick explicit check.
    Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
    Acked-by: NSakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
    ff05cb4b
videobuf2-core.c 95.6 KB