From: Oleg Nesterov Date: Tue, 23 Jan 2007 23:04:13 +0000 (-0300) Subject: V4L: buf_qbuf: fix videobuf_queue->stream corruption and lockup X-Git-Tag: v2.6.19.5~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=982a9e019fcf803319b13366b984a4e52cd66712;p=thirdparty%2Fkernel%2Fstable.git V4L: buf_qbuf: fix videobuf_queue->stream corruption and lockup We are doing ->buf_prepare(buf) before adding buf to q->stream list. This means that videobuf_qbuf() should not try to re-add a STATE_PREPARED buffer. (cherry picked from commit 419dd8378dfa32985672ab7927b4bc827f33b332) Signed-off-by: Oleg Nesterov Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Michael Krufky Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/media/video/video-buf.c b/drivers/media/video/video-buf.c index f429f49901b9a..3f65fb612ea87 100644 --- a/drivers/media/video/video-buf.c +++ b/drivers/media/video/video-buf.c @@ -700,6 +700,7 @@ videobuf_qbuf(struct videobuf_queue *q, goto done; } if (buf->state == STATE_QUEUED || + buf->state == STATE_PREPARED || buf->state == STATE_ACTIVE) { dprintk(1,"qbuf: buffer is already queued or active.\n"); goto done;