mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-24 14:54:49 +08:00
media: media-request: 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 media_request_poll(). Fix this, otherwise epoll() would timeout when it shouldn't. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
b7990bcfb6
commit
f4dd471b5c
@ -100,6 +100,7 @@ static __poll_t media_request_poll(struct file *filp,
|
||||
if (!(poll_requested_events(wait) & EPOLLPRI))
|
||||
return 0;
|
||||
|
||||
poll_wait(filp, &req->poll_wait, wait);
|
||||
spin_lock_irqsave(&req->lock, flags);
|
||||
if (req->state == MEDIA_REQUEST_STATE_COMPLETE) {
|
||||
ret = EPOLLPRI;
|
||||
@ -110,8 +111,6 @@ static __poll_t media_request_poll(struct file *filp,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
poll_wait(filp, &req->poll_wait, wait);
|
||||
|
||||
unlock:
|
||||
spin_unlock_irqrestore(&req->lock, flags);
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user