aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index a0b716d62701..f4152fcd9f8e 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1184,8 +1184,7 @@ static long __sched nanosleep_restart(struct restart_block *restart)
1184 if (!time_after(expire, now)) 1184 if (!time_after(expire, now))
1185 return 0; 1185 return 0;
1186 1186
1187 current->state = TASK_INTERRUPTIBLE; 1187 expire = schedule_timeout_interruptible(expire - now);
1188 expire = schedule_timeout(expire - now);
1189 1188
1190 ret = 0; 1189 ret = 0;
1191 if (expire) { 1190 if (expire) {
@@ -1213,8 +1212,7 @@ asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __us
1213 return -EINVAL; 1212 return -EINVAL;
1214 1213
1215 expire = timespec_to_jiffies(&t) + (t.tv_sec || t.tv_nsec); 1214 expire = timespec_to_jiffies(&t) + (t.tv_sec || t.tv_nsec);
1216 current->state = TASK_INTERRUPTIBLE; 1215 expire = schedule_timeout_interruptible(expire);
1217 expire = schedule_timeout(expire);
1218 1216
1219 ret = 0; 1217 ret = 0;
1220 if (expire) { 1218 if (expire) {
@@ -1612,10 +1610,8 @@ void msleep(unsigned int msecs)
1612{ 1610{
1613 unsigned long timeout = msecs_to_jiffies(msecs) + 1; 1611 unsigned long timeout = msecs_to_jiffies(msecs) + 1;
1614 1612
1615 while (timeout) { 1613 while (timeout)
1616 set_current_state(TASK_UNINTERRUPTIBLE); 1614 timeout = schedule_timeout_uninterruptible(timeout);
1617 timeout = schedule_timeout(timeout);
1618 }
1619} 1615}
1620 1616
1621EXPORT_SYMBOL(msleep); 1617EXPORT_SYMBOL(msleep);
@@ -1628,10 +1624,8 @@ unsigned long msleep_interruptible(unsigned int msecs)
1628{ 1624{
1629 unsigned long timeout = msecs_to_jiffies(msecs) + 1; 1625 unsigned long timeout = msecs_to_jiffies(msecs) + 1;
1630 1626
1631 while (timeout && !signal_pending(current)) { 1627 while (timeout && !signal_pending(current))
1632 set_current_state(TASK_INTERRUPTIBLE); 1628 timeout = schedule_timeout_interruptible(timeout);
1633 timeout = schedule_timeout(timeout);
1634 }
1635 return jiffies_to_msecs(timeout); 1629 return jiffies_to_msecs(timeout);
1636} 1630}
1637 1631