mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
posix-timers: Consolidate timer setup
hrtimer based and CPU timers have their own way to install the new interval and to reset overrun and signal handling related data. Create a helper function and do the same operation for all variants. This also makes the handling of the interval consistent. It's only stored when the timer is actually armed, i.e. timer->it_value != 0. Before that it was stored unconditionally for posix CPU timers and conditionally for the other posix timers. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
This commit is contained in:
committed by
Frederic Weisbecker
parent
52dea0a15c
commit
20f13385b5
@@ -714,21 +714,8 @@ static int posix_cpu_timer_set(struct k_itimer *timer, int timer_flags,
|
||||
}
|
||||
|
||||
unlock_task_sighand(p, &flags);
|
||||
/*
|
||||
* Install the new reload setting, and
|
||||
* set up the signal and overrun bookkeeping.
|
||||
*/
|
||||
timer->it_interval = timespec64_to_ktime(new->it_interval);
|
||||
|
||||
/*
|
||||
* This acts as a modification timestamp for the timer,
|
||||
* so any automatic reload attempt will punt on seeing
|
||||
* that we have reset the timer manually.
|
||||
*/
|
||||
timer->it_requeue_pending = (timer->it_requeue_pending + 2) &
|
||||
~REQUEUE_PENDING;
|
||||
timer->it_overrun_last = 0;
|
||||
timer->it_overrun = -1;
|
||||
posix_timer_set_common(timer, new);
|
||||
|
||||
/*
|
||||
* If the new expiry time was already in the past the timer was not
|
||||
|
||||
Reference in New Issue
Block a user