Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 310b587e authored by Nishanth Aravamudan's avatar Nishanth Aravamudan Committed by Linus Torvalds
Browse files

[PATCH] mips: fix-up schedule_timeout() usage



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().

Signed-off-by: default avatarNishanth Aravamudan <nacc@us.ibm.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 52e6e630
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -440,18 +440,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)
{
@@ -489,14 +477,13 @@ asmlinkage int irix_sigpoll_sys(unsigned long *set, struct irix5_siginfo *info,
			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]);
+1 −2
Original line number Diff line number Diff line
@@ -1032,8 +1032,7 @@ bad:

asmlinkage int irix_sginap(int ticks)
{
	current->state = TASK_INTERRUPTIBLE;
	schedule_timeout(ticks);
	schedule_timeout_interruptible(ticks);
	return 0;
}