mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
posix-timers: Switch to hrtimer_start_expires_user()
Switch the arm and rearm callbacks for hrtimer based posix timers over to hrtimer_start_expires_user() so that already expired timers are not queued. Hand the result back to the caller, which then queues the signal. Signed-off-by: Thomas Gleixner <tglx@kernel.org> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20260408114952.266001916@kernel.org
This commit is contained in:
parent
cfb7fe3fdd
commit
acc071343d
|
|
@ -293,8 +293,7 @@ static bool common_hrtimer_rearm(struct k_itimer *timr)
|
|||
struct hrtimer *timer = &timr->it.real.timer;
|
||||
|
||||
timr->it_overrun += hrtimer_forward_now(timer, timr->it_interval);
|
||||
hrtimer_restart(timer);
|
||||
return true;
|
||||
return hrtimer_start_expires_user(timer, HRTIMER_MODE_ABS);
|
||||
}
|
||||
|
||||
static bool __posixtimer_deliver_signal(struct kernel_siginfo *info, struct k_itimer *timr)
|
||||
|
|
@ -829,9 +828,11 @@ static bool common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
|
|||
expires = ktime_add_safe(expires, hrtimer_cb_get_time(timer));
|
||||
hrtimer_set_expires(timer, expires);
|
||||
|
||||
if (!sigev_none)
|
||||
hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
|
||||
return true;
|
||||
/* For sigev_none pretend that the timer is queued */
|
||||
if (sigev_none)
|
||||
return true;
|
||||
|
||||
return hrtimer_start_expires_user(timer, HRTIMER_MODE_ABS);
|
||||
}
|
||||
|
||||
static int common_hrtimer_try_to_cancel(struct k_itimer *timr)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user