From: Nishanth Aravamudan Subject: [KJ] [PATCH 3/20] net/8139too: remove interruptible_sleep_on_timeout() usage One thing I would have preferred using here is use wait_event*(), but there is no condition. However, try_to_freeze(PF_FREEZE) could be used as one, if the return condition matters -- it can return 0 or 1, from what I understand. If the intent is to loop until the task is "frozen," then I can revise the patch to use wait_event_interruptible_timeout(). Replace deprecated interruptible_sleep_on_timeout() function calls with direct wait-queue usage. I did not find the direct wake_up_interruptible() function call in this file for the wait-queue, but that may not be an issue. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- 8139too.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletion(-) Index: quilt/drivers/net/8139too.c =================================================================== --- quilt.orig/drivers/net/8139too.c +++ quilt/drivers/net/8139too.c @@ -108,6 +108,7 @@ #include #include #include +#include #include #include #include @@ -1614,6 +1615,7 @@ static inline void rtl8139_thread_iter ( static int rtl8139_thread (void *data) { + DEFINE_WAIT(wait); struct net_device *dev = data; struct rtl8139_private *tp = netdev_priv(dev); unsigned long timeout; @@ -1624,7 +1626,9 @@ static int rtl8139_thread (void *data) while (1) { timeout = next_tick; do { - timeout = interruptible_sleep_on_timeout (&tp->thr_wait, timeout); + prepare_to_wait(&tp->thr_wait, &wait, TASK_INTERRUPTIBLE); + timeout = schedule_timeout(timeout); + finish_wait(&tp->thr_wait, &wait); /* make swsusp happy with our thread */ try_to_freeze(PF_FREEZE); } while (!signal_pending (current) && (timeout > 0));