mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
media: dvb_frontend: Use wait_event_freezable_timeout() for freezable kthread
A freezable kernel thread can enter frozen state during freezing by either calling try_to_freeze() or using wait_event_freezable() and its variants. So for the following snippet of code in a kernel thread loop: wait_event_interruptible_timeout(); try_to_freeze(); We can change it to a simple wait_event_freezable_timeout() and then eliminate a function call. Signed-off-by: Kevin Hao <haokexin@gmail.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
@@ -679,11 +679,9 @@ static int dvb_frontend_thread(void *data)
|
|||||||
set_freezable();
|
set_freezable();
|
||||||
while (1) {
|
while (1) {
|
||||||
up(&fepriv->sem); /* is locked when we enter the thread... */
|
up(&fepriv->sem); /* is locked when we enter the thread... */
|
||||||
restart:
|
wait_event_freezable_timeout(fepriv->wait_queue,
|
||||||
wait_event_interruptible_timeout(fepriv->wait_queue,
|
|
||||||
dvb_frontend_should_wakeup(fe) ||
|
dvb_frontend_should_wakeup(fe) ||
|
||||||
kthread_should_stop() ||
|
kthread_should_stop(),
|
||||||
freezing(current),
|
|
||||||
fepriv->delay);
|
fepriv->delay);
|
||||||
|
|
||||||
if (kthread_should_stop() || dvb_frontend_is_exiting(fe)) {
|
if (kthread_should_stop() || dvb_frontend_is_exiting(fe)) {
|
||||||
@@ -694,9 +692,6 @@ restart:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (try_to_freeze())
|
|
||||||
goto restart;
|
|
||||||
|
|
||||||
if (down_interruptible(&fepriv->sem))
|
if (down_interruptible(&fepriv->sem))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user