From 8365c315507fe10925bb3281d74444fe02935b25 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 18 May 2004 01:49:36 -0700 Subject: [PATCH] Add msleep function to the kernel core to prevent duplication. --- include/linux/delay.h | 2 ++ kernel/timer.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/linux/delay.h b/include/linux/delay.h index 36abaa6b19fdd..f5610919dc3e1 100644 --- a/include/linux/delay.h +++ b/include/linux/delay.h @@ -38,4 +38,6 @@ extern unsigned long loops_per_jiffy; #define ndelay(x) udelay(((x)+999)/1000) #endif +void msleep(unsigned int msecs); + #endif /* defined(_LINUX_DELAY_H) */ diff --git a/kernel/timer.c b/kernel/timer.c index d28aecec0be12..0f2d571dff3a1 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -1485,3 +1485,20 @@ unregister_time_interpolator(struct time_interpolator *ti) spin_unlock(&time_interpolator_lock); } #endif /* CONFIG_TIME_INTERPOLATION */ + +/** + * msleep - sleep safely even with waitqueue interruptions + * @msecs: Time in milliseconds to sleep for + */ +void msleep(unsigned int msecs) +{ + unsigned long timeout = msecs_to_jiffies(msecs); + + while (timeout) { + set_current_state(TASK_UNINTERRUPTIBLE); + timeout = schedule_timeout(timeout); + } +} + +EXPORT_SYMBOL(msleep); + -- 2.53.0