diff options
| author | Hungyu Lin <dennylin0707@gmail.com> | 2026-10-20 22:39:57 +0000 |
|---|---|---|
| committer | Thomas Gleixner <tglx@kernel.org> | 2026-10-25 22:43:19 +0100 |
| commit | ef60f61208a30eb5b941b707debdf04517271b4f (patch) | |
| tree | e1503560d86548d64a706987b1c7b5f63e94fe83 /kernel | |
| parent | 5b819071e4346256c4edbae5cc2095dff25694fc (diff) | |
| download | linux-ef60f61208a30eb5b941b707debdf04517271b4f.tar.gz linux-ef60f61208a30eb5b941b707debdf04517271b4f.zip | |
timers/itimer: Keep a nonzero value at CPU timer expiry
get_cpu_itimer() returns a zero remaining time when the sampled CPU time
is exactly equal to the nonzero expiry. This makes an armed ITIMER_VIRTUAL
or ITIMER_PROF timer appear disarmed.
The cputime cleanup replaced cputime_le(), which implements <=, with <.
Restore the inclusive comparison so the equality case returns TICK_NSEC,
like the overdue case and set_process_cpu_timer().
Fixes: 648616343cdb ("[S390] cputime: add sparse checking and cleanup")
Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20261020223957.87842-1-dennylin0707@gmail.com
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/time/itimer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/itimer.c b/kernel/time/itimer.c index 03a32dffc56c..f7de39769095 100644 --- a/kernel/time/itimer.c +++ b/kernel/time/itimer.c @@ -60,7 +60,7 @@ static void get_cpu_itimer(struct task_struct *tsk, unsigned int clock_id, thread_group_sample_cputime(tsk, samples); t = samples[clock_id]; - if (val < t) + if (val <= t) /* about to fire */ val = TICK_NSEC; else |
