From: Andrew Morton These functions don't need schedule_timeout()'s barrier. Signed-off-by: Andrew Morton --- kernel/timer.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff -puN kernel/timer.c~schedule_timeout_interruptible-speedup kernel/timer.c --- devel/kernel/timer.c~schedule_timeout_interruptible-speedup 2005-09-11 12:25:15.000000000 -0700 +++ devel-akpm/kernel/timer.c 2005-09-11 12:26:08.000000000 -0700 @@ -1151,19 +1151,22 @@ fastcall signed long __sched schedule_ti out: return timeout < 0 ? 0 : timeout; } - EXPORT_SYMBOL(schedule_timeout); +/* + * We can use __set_current_state() here because schedule_timeout() calls + * schedule() unconditionally. + */ signed long __sched schedule_timeout_interruptible(signed long timeout) { - set_current_state(TASK_INTERRUPTIBLE); + __set_current_state(TASK_INTERRUPTIBLE); return schedule_timeout(timeout); } EXPORT_SYMBOL(schedule_timeout_interruptible); signed long __sched schedule_timeout_uninterruptible(signed long timeout) { - set_current_state(TASK_UNINTERRUPTIBLE); + __set_current_state(TASK_UNINTERRUPTIBLE); return schedule_timeout(timeout); } EXPORT_SYMBOL(schedule_timeout_uninterruptible); _