diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2024-06-10 18:42:15 +0200 |
---|---|---|
committer | Frederic Weisbecker <frederic@kernel.org> | 2024-07-29 21:57:34 +0200 |
commit | b3e866b2dffbc36b31be7811ebded91ce82ecd10 (patch) | |
tree | 7f585644e3fbcf326d3afe6fdff5fb41ddcd1559 | |
parent | posix-cpu-timers: Split up posix_cpu_timer_get() (diff) | |
download | linux-b3e866b2dffbc36b31be7811ebded91ce82ecd10.tar.xz linux-b3e866b2dffbc36b31be7811ebded91ce82ecd10.zip |
posix-cpu-timers: Save interval only for armed timers
There is no point to return the interval for timers which have been
disarmed.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
-rw-r--r-- | kernel/time/posix-cpu-timers.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c index 558be8d53e47..5aac0886bbc7 100644 --- a/kernel/time/posix-cpu-timers.c +++ b/kernel/time/posix-cpu-timers.c @@ -809,17 +809,15 @@ static void posix_cpu_timer_get(struct k_itimer *timer, struct itimerspec64 *itp rcu_read_lock(); p = cpu_timer_task_rcu(timer); - if (p) { + if (p && cpu_timer_getexpires(&timer->it.cpu)) { itp->it_interval = ktime_to_timespec64(timer->it_interval); - if (cpu_timer_getexpires(&timer->it.cpu)) { - if (CPUCLOCK_PERTHREAD(timer->it_clock)) - now = cpu_clock_sample(clkid, p); - else - now = cpu_clock_sample_group(clkid, p, false); + if (CPUCLOCK_PERTHREAD(timer->it_clock)) + now = cpu_clock_sample(clkid, p); + else + now = cpu_clock_sample_group(clkid, p, false); - __posix_cpu_timer_get(timer, itp, now); - } + __posix_cpu_timer_get(timer, itp, now); } rcu_read_unlock(); } |