Unverified Commit 61958ba5 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!1270 media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()

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


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


		if (flags & O_NONBLOCK)
		if (flags & O_NONBLOCK)
			return -EWOULDBLOCK;
			return -EWOULDBLOCK;


		ret = wait_event_interruptible(events->wait_queue,
		init_waitqueue_entry(&wait, current);
					       dvb_frontend_test_event(fepriv, events));
		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)
		if (ret < 0)
			return ret;
			return ret;
	}
	}