From: Hans Verkuil Date: Thu, 7 Feb 2019 11:49:46 +0000 (-0500) Subject: media: v4l2-mem2mem: add q->error check to v4l2_m2m_poll() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=96ebc0ca6f6d0978b1a016e6daa29817a812ce55;p=openwrt%2Fstaging%2Fblogic.git media: v4l2-mem2mem: add q->error check to v4l2_m2m_poll() The v4l2_m2m_poll function didn't check whether q->error was set for either of the two queues. Add support for this. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c index 36ae6123dcef..57eccbaa52de 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -638,8 +638,10 @@ __poll_t v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, * means either in driver already or waiting for driver to claim it * and start processing. */ - if ((!src_q->streaming || list_empty(&src_q->queued_list)) - && (!dst_q->streaming || list_empty(&dst_q->queued_list))) { + if ((!src_q->streaming || src_q->error || + list_empty(&src_q->queued_list)) && + (!dst_q->streaming || dst_q->error || + list_empty(&dst_q->queued_list))) { rc |= EPOLLERR; goto end; }