• Hans Verkuil's avatar
    media: saa7134: fix regression with tvtime · 8fad854f
    Hans Verkuil authored
    commit 17e7f1b5 upstream.
    
    This solves this bug:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=73361
    
    The problem is that when you quit tvtime it calls STREAMOFF, but then it queues a
    bunch of buffers for no good reason before closing the file descriptor.
    
    In the past closing the fd would free the vb queue since that was part of the file
    handle struct. Since that was moved to the global struct that no longer happened.
    
    This wouldn't be a problem, but the extra QBUF calls that tvtime does meant that
    the buffer list in videobuf (q->stream) contained buffers, so REQBUFS would fail
    with -EBUSY.
    
    The solution is to init the list head explicitly when releasing the file
    descriptor and to not free the video resource when calling streamoff.
    
    The real fix will hopefully go into kernel 3.16 when the vb2 conversion is
    merged. Basically the saa7134 driver with the old videobuf is so full of holes it
    ain't funny anymore, so consider this a band-aid for kernels 3.14 and 15.
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8fad854f
saa7134-video.c 62.5 KB