Commit f4dd471b authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

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: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent b7990bcf
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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;