mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 17:54:13 +08:00
[media] mem2mem: make queue lock in v4l2_m2m_poll interruptible
This patch makes the queue lock taken in v4l2_m2m_poll interruptible. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
7e49027e62
commit
a85fd20fb6
@ -568,8 +568,12 @@ unsigned int v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
|||||||
|
|
||||||
if (m2m_ctx->m2m_dev->m2m_ops->lock)
|
if (m2m_ctx->m2m_dev->m2m_ops->lock)
|
||||||
m2m_ctx->m2m_dev->m2m_ops->lock(m2m_ctx->priv);
|
m2m_ctx->m2m_dev->m2m_ops->lock(m2m_ctx->priv);
|
||||||
else if (m2m_ctx->q_lock)
|
else if (m2m_ctx->q_lock) {
|
||||||
mutex_lock(m2m_ctx->q_lock);
|
if (mutex_lock_interruptible(m2m_ctx->q_lock)) {
|
||||||
|
rc |= POLLERR;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
spin_lock_irqsave(&src_q->done_lock, flags);
|
spin_lock_irqsave(&src_q->done_lock, flags);
|
||||||
if (!list_empty(&src_q->done_list))
|
if (!list_empty(&src_q->done_list))
|
||||||
|
Loading…
Reference in New Issue
Block a user