Brandon Philips
137d1cb19d
V4L/DVB (7493): videobuf: Avoid deadlock with QBUF and bring up to spec for empty queue
...
Add a waitqueue to wait on when there are no buffers in the buffer queue.
DQBUF waits on this queue without holding vb_lock to allow a QBUF to happen.
Once a buffer has been queued we recheck that the queue is still streaming and
wait on the new buffer's waitqueue while holding the vb_lock. The driver
should come along in a timely manner and put the buffer into its next state
finishing the DQBUF.
By implementing this waitqueue it also brings the videobuf DQBUF up to spec and
it now blocks on O_NONBLOCK even when no buffers have been queued via QBUF:
"By default VIDIOC_DQBUF blocks when no buffer is in the outgoing queue."
- V4L2 spec
Signed-off-by: Brandon Philips <bphilips@suse.de>
CC: Trent Piepho <xyzzy@speakeasy.org>
CC: Carl Karsten <carl@personnelware.com>
CC: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-04-24 14:07:57 -03:00
..
acpi
asm-alpha
asm-generic: add node_to_cpumask_ptr macro
2008-04-19 19:44:58 +02:00
asm-arm
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
2008-04-21 17:23:30 -07:00
asm-avr32
avr32: add include/asm-avr32/serial.h
2008-04-19 20:40:10 -04:00
asm-blackfin
include: Remove unnecessary inclusions of asm/semaphore.h
2008-04-18 22:16:54 -04:00
asm-cris
asm-frv
frv: remove HARD_RESET_NOW()
2008-04-21 16:03:13 -07:00
asm-generic
asm-generic: add node_to_cpumask_ptr macro
2008-04-19 19:44:58 +02:00
asm-h8300
asm-ia64
[IA64] move XP and XPC to drivers/misc/sgi-xp
2008-04-22 15:08:17 -07:00
asm-m32r
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
2008-04-18 08:39:24 -07:00
asm-m68k
asm-m68knommu
asm-mips
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
2008-04-18 08:39:24 -07:00
asm-mn10300
asm-parisc
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
2008-04-18 08:39:24 -07:00
asm-powerpc
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
2008-04-21 15:50:49 -07:00
asm-ppc
include: Remove unnecessary inclusions of asm/semaphore.h
2008-04-18 22:16:54 -04:00
asm-s390
Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
2008-04-18 08:25:29 -07:00
asm-sh
i2c: Renesas SH7760 I2C master driver
2008-04-22 22:16:47 +02:00
asm-sparc
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
2008-04-21 17:20:53 -07:00
asm-sparc64
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
2008-04-21 17:20:53 -07:00
asm-um
asm-v850
asm-x86
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-devel
2008-04-21 15:40:24 -07:00
asm-xtensa
crypto
[CRYPTO] aes: Export generic setkey
2008-04-21 10:19:34 +08:00
keys
KEYS: Fix the comment to match the file name in rxrpc-type.h.
2008-04-21 22:43:55 +00:00
linux
V4L/DVB (7453): v4l2-api: Define a standard control for color killer functionality
2008-04-24 14:07:56 -03:00
math-emu
media
V4L/DVB (7493): videobuf: Avoid deadlock with QBUF and bring up to spec for empty queue
2008-04-24 14:07:57 -03:00
mtd
net
[IPSEC]: Fix catch-22 with algorithm IDs above 31
2008-04-22 00:46:42 -07:00
pcmcia
rdma
IB: convert struct class_device to struct device
2008-04-19 19:10:30 -07:00
rxrpc
scsi
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
2008-04-21 15:49:58 -07:00
sound
video
xen
Kbuild