OSDN Git Service

posix-cpu-timers: Get rid of zero checks
authorThomas Gleixner <tglx@linutronix.de>
Wed, 21 Aug 2019 19:09:19 +0000 (21:09 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 28 Aug 2019 09:50:40 +0000 (11:50 +0200)
commit2bbdbdae05167c688b6d3499a7dab74208b80a22
tree7731020cb6763b1c4fd314b39acff07855b2a894
parent24db4dd90dd53ad6e3331b6f01cb985e466cface
posix-cpu-timers: Get rid of zero checks

Deactivation of the expiry cache is done by setting all clock caches to
0. That requires to have a check for zero in all places which update the
expiry cache:

if (cache == 0 || new < cache)
cache = new;

Use U64_MAX as the deactivated value, which allows to remove the zero
checks when updating the cache and reduces it to the obvious check:

if (new < cache)
cache = new;

This also removes the weird workaround in do_prlimit() which was required
to convert a RLIMIT_CPU value of 0 (immediate expiry) to 1 because handing
in 0 to the posix CPU timer code would have effectively disarmed it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lkml.kernel.org/r/20190821192922.275086128@linutronix.de
include/linux/posix-timers.h
kernel/sys.c
kernel/time/posix-cpu-timers.c