diff options
-rw-r--r-- | drivers/media/v4l2-core/v4l2-mem2mem.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c index 66f599fcb829..9ac39b5d5830 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c | |||
@@ -486,8 +486,10 @@ unsigned int v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, | |||
486 | if (m2m_ctx->m2m_dev->m2m_ops->unlock) | 486 | if (m2m_ctx->m2m_dev->m2m_ops->unlock) |
487 | m2m_ctx->m2m_dev->m2m_ops->unlock(m2m_ctx->priv); | 487 | m2m_ctx->m2m_dev->m2m_ops->unlock(m2m_ctx->priv); |
488 | 488 | ||
489 | poll_wait(file, &src_q->done_wq, wait); | 489 | if (list_empty(&src_q->done_list)) |
490 | poll_wait(file, &dst_q->done_wq, wait); | 490 | poll_wait(file, &src_q->done_wq, wait); |
491 | if (list_empty(&dst_q->done_list)) | ||
492 | poll_wait(file, &dst_q->done_wq, wait); | ||
491 | 493 | ||
492 | if (m2m_ctx->m2m_dev->m2m_ops->lock) | 494 | if (m2m_ctx->m2m_dev->m2m_ops->lock) |
493 | m2m_ctx->m2m_dev->m2m_ops->lock(m2m_ctx->priv); | 495 | m2m_ctx->m2m_dev->m2m_ops->lock(m2m_ctx->priv); |