Unverified Commit 0d8a1480 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!1299 [sync] PR-1270: media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()

parents 3da03a09 dcfd0d01
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -292,14 +292,22 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
	}

	if (events->eventw == events->eventr) {
		int ret;
		struct wait_queue_entry wait;
		int ret = 0;

		if (flags & O_NONBLOCK)
			return -EWOULDBLOCK;

		ret = wait_event_interruptible(events->wait_queue,
					       dvb_frontend_test_event(fepriv, events));

		init_waitqueue_entry(&wait, current);
		add_wait_queue(&events->wait_queue, &wait);
		while (!dvb_frontend_test_event(fepriv, events)) {
			wait_woken(&wait, TASK_INTERRUPTIBLE, 0);
			if (signal_pending(current)) {
				ret = -ERESTARTSYS;
				break;
			}
		}
		remove_wait_queue(&events->wait_queue, &wait);
		if (ret < 0)
			return ret;
	}