linux/drivers/media/video/uvc
Laurent Pinchart d7c0d43997 V4L/DVB (13831): uvcvideo: Fix oops caused by a race condition in buffer dequeuing
Buffers were marked as done before being removed from the IRQ queue. If
a userspace application dequeued and requeued the buffer fast enough
during that time window, the buffer could end up being deleted twice,
generating an oops in interrupt context.

Add a new state, UVC_BUF_STATE_READY, to mark buffers as ready for reuse
but not yet removed from the queue, and transition to UVC_BUF_STATE_DONE
only when the buffer is removed from the queue.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-01-17 11:31:35 -02:00
..
Kconfig V4L/DVB (11439): UVC: uvc_status_cleanup(): undefined reference to `input_unregister_device' 2009-04-06 21:44:52 -03:00
Makefile
uvc_ctrl.c V4L/DVB (13826): uvcvideo: Fix controls blacklisting 2010-01-17 11:31:35 -02:00
uvc_driver.c V4L/DVB (13556): v4l: Remove unneeded video_device::minor assignments 2009-12-16 00:17:57 -02:00
uvc_isight.c V4L/DVB (12378): uvcvideo: Restructure the driver to support multiple simultaneous streams. 2009-09-12 12:18:32 -03:00
uvc_queue.c V4L/DVB (13831): uvcvideo: Fix oops caused by a race condition in buffer dequeuing 2010-01-17 11:31:35 -02:00
uvc_status.c V4L/DVB (12380): uvcvideo: Avoid flooding the kernel log with "unknown event type" messages 2009-08-13 20:39:05 -03:00
uvc_v4l2.c V4L/DVB (13506): uvcvideo: Factorize common field in uvc_entity structure 2009-12-05 18:42:13 -02:00
uvc_video.c V4L/DVB (13831): uvcvideo: Fix oops caused by a race condition in buffer dequeuing 2010-01-17 11:31:35 -02:00
uvcvideo.h V4L/DVB (13831): uvcvideo: Fix oops caused by a race condition in buffer dequeuing 2010-01-17 11:31:35 -02:00