提交 419dd837 编写于 作者: O Oleg Nesterov 提交者: Mauro Carvalho Chehab

V4L/DVB (5123): 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.
Signed-off-by: NOleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
上级 99ddcc7e
...@@ -700,6 +700,7 @@ videobuf_qbuf(struct videobuf_queue *q, ...@@ -700,6 +700,7 @@ videobuf_qbuf(struct videobuf_queue *q,
goto done; goto done;
} }
if (buf->state == STATE_QUEUED || if (buf->state == STATE_QUEUED ||
buf->state == STATE_PREPARED ||
buf->state == STATE_ACTIVE) { buf->state == STATE_ACTIVE) {
dprintk(1,"qbuf: buffer is already queued or active.\n"); dprintk(1,"qbuf: buffer is already queued or active.\n");
goto done; goto done;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册