summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorHungyu Lin <dennylin0707@gmail.com>2026-10-20 22:39:57 +0000
committerThomas Gleixner <tglx@kernel.org>2026-10-25 22:43:19 +0100
commitef60f61208a30eb5b941b707debdf04517271b4f (patch)
treee1503560d86548d64a706987b1c7b5f63e94fe83 /kernel
parent5b819071e4346256c4edbae5cc2095dff25694fc (diff)
downloadlinux-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.c2
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