diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/itimer.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/kernel/itimer.c b/kernel/itimer.c index 6433d0685506..379be2f8c84c 100644 --- a/kernel/itimer.c +++ b/kernel/itimer.c | |||
@@ -155,16 +155,16 @@ int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue) | |||
155 | again: | 155 | again: |
156 | spin_lock_irq(&tsk->sighand->siglock); | 156 | spin_lock_irq(&tsk->sighand->siglock); |
157 | timer = &tsk->signal->real_timer; | 157 | timer = &tsk->signal->real_timer; |
158 | /* We are sharing ->siglock with it_real_fn() */ | ||
159 | if (hrtimer_try_to_cancel(timer) < 0) { | ||
160 | spin_unlock_irq(&tsk->sighand->siglock); | ||
161 | goto again; | ||
162 | } | ||
163 | if (ovalue) { | 158 | if (ovalue) { |
164 | ovalue->it_value = itimer_get_remtime(timer); | 159 | ovalue->it_value = itimer_get_remtime(timer); |
165 | ovalue->it_interval | 160 | ovalue->it_interval |
166 | = ktime_to_timeval(tsk->signal->it_real_incr); | 161 | = ktime_to_timeval(tsk->signal->it_real_incr); |
167 | } | 162 | } |
163 | /* We are sharing ->siglock with it_real_fn() */ | ||
164 | if (hrtimer_try_to_cancel(timer) < 0) { | ||
165 | spin_unlock_irq(&tsk->sighand->siglock); | ||
166 | goto again; | ||
167 | } | ||
168 | tsk->signal->it_real_incr = | 168 | tsk->signal->it_real_incr = |
169 | timeval_to_ktime(value->it_interval); | 169 | timeval_to_ktime(value->it_interval); |
170 | expires = timeval_to_ktime(value->it_value); | 170 | expires = timeval_to_ktime(value->it_value); |