Commit 4f20b7be authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

media: cec: add EPOLLPRI in poll() when dev is unregistered

If the CEC device was unregistered, then add EPOLLPRI to
the poll() mask. Otherwise a select() that only waits for
exceptions will not wake up. A select() that waits for
read and/or write events *will* wake up on an EPOLLERR, but
not (for some reason) if it just waits for exceptions.

Strangly the epoll functionality will wakeup on EPOLLERR if
you just wait for an exception, so in this respect select()
and epoll differ.

In the end it doesn't really matter, what matters is that
polling file handles are woken up on device unregistration.
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 5cb0a64e
...@@ -40,7 +40,7 @@ static __poll_t cec_poll(struct file *filp, ...@@ -40,7 +40,7 @@ static __poll_t cec_poll(struct file *filp,
poll_wait(filp, &fh->wait, poll); poll_wait(filp, &fh->wait, poll);
if (!cec_is_registered(adap)) if (!cec_is_registered(adap))
return EPOLLERR | EPOLLHUP; return EPOLLERR | EPOLLHUP | EPOLLPRI;
mutex_lock(&adap->lock); mutex_lock(&adap->lock);
if (adap->is_configured && if (adap->is_configured &&
adap->transmit_queue_sz < CEC_MAX_MSG_TX_QUEUE_SZ) adap->transmit_queue_sz < CEC_MAX_MSG_TX_QUEUE_SZ)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment