From c289b074b66e2e59c65aba73f40b99e797e92d2f Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Fri, 1 Feb 2008 20:41:30 +0300 Subject: [PATCH] hrtimer: don't modify restart_block->fn in restart functions hrtimer_nanosleep_restart() clears/restores restart_block->fn. This is pointless and complicates its usage. Note that if sys_restart_syscall() doesn't actually happen, we have a bogus "pending" restart->fn anyway, this is harmless. Signed-off-by: Oleg Nesterov Cc: Alexey Dobriyan Cc: Pavel Emelyanov Cc: Peter Zijlstra Cc: Toyo Abe Cc: Andrew Morton Signed-off-by: Thomas Gleixner --- kernel/compat.c | 1 - kernel/hrtimer.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/kernel/compat.c b/kernel/compat.c index f2a297504287..5f0e201bcfd3 100644 --- a/kernel/compat.c +++ b/kernel/compat.c @@ -55,7 +55,6 @@ static long compat_nanosleep_restart(struct restart_block *restart) set_fs(oldfs); if (ret) { - restart->fn = compat_nanosleep_restart; restart->arg1 = (unsigned long)rmtp; if (rmtp && put_compat_timespec(&rmt, rmtp)) diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 355085f0896e..3f4a57c7895d 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -1340,8 +1340,6 @@ long __sched hrtimer_nanosleep_restart(struct restart_block *restart) struct hrtimer_sleeper t; struct timespec __user *rmtp; - restart->fn = do_no_restart_syscall; - hrtimer_init(&t.timer, restart->arg0, HRTIMER_MODE_ABS); t.timer.expires.tv64 = ((u64)restart->arg3 << 32) | (u64) restart->arg2; @@ -1355,8 +1353,6 @@ long __sched hrtimer_nanosleep_restart(struct restart_block *restart) return ret; } - restart->fn = hrtimer_nanosleep_restart; - /* The other values in restart are already filled in */ return -ERESTART_RESTARTBLOCK; }