diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2009-12-16 19:20:45 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-01-17 08:31:35 -0500 |
commit | d7c0d43997cf716617d724554d19b3b8dd465833 (patch) | |
tree | 00ef45adee02318f35775cc9ecce4ae18372a624 /drivers/media/dvb/frontends | |
parent | 2c4d9de8ab1434336248bbc01ee8e64d7e6b8a4f (diff) |
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>
Diffstat (limited to 'drivers/media/dvb/frontends')
0 files changed, 0 insertions, 0 deletions