]> git.hungrycats.org Git - linux/commitdiff
V4L/DVB: Buf_qbuf: fix: videobuf_queue->stream corruption and lockup
authorOleg Nesterov <oleg@tv-sign.ru>
Tue, 20 Feb 2007 15:07:19 +0000 (16:07 +0100)
committerAdrian Bunk <bunk@stusta.de>
Tue, 20 Feb 2007 15:07:19 +0000 (16:07 +0100)
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.

Adrian Bunk:
Backported to 2.6.16.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/video-buf.c

index 9ef477523d27ecba4789ed4607bcb959ec335440..9e77f87edbc983d82c48d2d0a101735be0a2ee1f 100644 (file)
@@ -608,6 +608,7 @@ videobuf_qbuf(struct videobuf_queue *q,
        if (buf->memory != b->memory)
                goto done;
        if (buf->state == STATE_QUEUED ||
+           buf->state == STATE_PREPARED ||
            buf->state == STATE_ACTIVE)
                goto done;