media: cec: fix epoll() by calling poll_wait first
The epoll function expects that whenever the poll file op is called, the poll_wait function is also called. That didn't always happen in cec_poll(). Fix this, otherwise epoll() would timeout when it shouldn't. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Reviewed-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
7e4e716244
commit
b7990bcfb6
|
@ -38,6 +38,7 @@ static __poll_t cec_poll(struct file *filp,
|
|||
struct cec_adapter *adap = fh->adap;
|
||||
__poll_t res = 0;
|
||||
|
||||
poll_wait(filp, &fh->wait, poll);
|
||||
if (!cec_is_registered(adap))
|
||||
return EPOLLERR | EPOLLHUP;
|
||||
mutex_lock(&adap->lock);
|
||||
|
@ -48,7 +49,6 @@ static __poll_t cec_poll(struct file *filp,
|
|||
res |= EPOLLIN | EPOLLRDNORM;
|
||||
if (fh->total_queued_events)
|
||||
res |= EPOLLPRI;
|
||||
poll_wait(filp, &fh->wait, poll);
|
||||
mutex_unlock(&adap->lock);
|
||||
return res;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue