From: Nishanth Aravamudan Use schedule_timeout_interruptible() instead of set_current_state()/schedule_timeout() to reduce kernel size. Also, replace custom timespectojiffies() function with globally availabe timespec_to_jiffies(). (akpm: this patch relies on other stuff in -mm, please don't apply) Signed-off-by: Nishanth Aravamudan Cc: Ralf Baechle Signed-off-by: Andrew Morton --- arch/mips/kernel/irixsig.c | 17 ++--------------- arch/mips/kernel/sysirix.c | 3 +-- 2 files changed, 3 insertions(+), 17 deletions(-) diff -puN arch/mips/kernel/irixsig.c~mips-fix-up-schedule_timeout-usage arch/mips/kernel/irixsig.c --- 25/arch/mips/kernel/irixsig.c~mips-fix-up-schedule_timeout-usage Wed Aug 17 17:00:35 2005 +++ 25-akpm/arch/mips/kernel/irixsig.c Wed Aug 17 17:00:35 2005 @@ -441,18 +441,6 @@ struct irix5_siginfo { } stuff; }; -static inline unsigned long timespectojiffies(struct timespec *value) -{ - unsigned long sec = (unsigned) value->tv_sec; - long nsec = value->tv_nsec; - - if (sec > (LONG_MAX / HZ)) - return LONG_MAX; - nsec += 1000000000L / HZ - 1; - nsec /= 1000000000L / HZ; - return HZ * sec + nsec; -} - asmlinkage int irix_sigpoll_sys(unsigned long *set, struct irix5_siginfo *info, struct timespec *tp) { @@ -490,14 +478,13 @@ asmlinkage int irix_sigpoll_sys(unsigned error = -EINVAL; goto out; } - expire = timespectojiffies(tp)+(tp->tv_sec||tp->tv_nsec); + expire = timespec_to_jiffies(tp) + (tp->tv_sec||tp->tv_nsec); } while(1) { long tmp = 0; - current->state = TASK_INTERRUPTIBLE; - expire = schedule_timeout(expire); + expire = schedule_timeout_interruptible(expire); for (i=0; i<=4; i++) tmp |= (current->pending.signal.sig[i] & kset.sig[i]); diff -puN arch/mips/kernel/sysirix.c~mips-fix-up-schedule_timeout-usage arch/mips/kernel/sysirix.c --- 25/arch/mips/kernel/sysirix.c~mips-fix-up-schedule_timeout-usage Wed Aug 17 17:00:35 2005 +++ 25-akpm/arch/mips/kernel/sysirix.c Wed Aug 17 17:00:35 2005 @@ -1035,8 +1035,7 @@ bad: asmlinkage int irix_sginap(int ticks) { - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(ticks); + schedule_timeout_interruptible(ticks); return 0; } _