hrtimer: prevent negative expiry value after clock_was_set()
authorThomas Gleixner <tglx@linutronix.de>
Sun, 25 Jan 2009 10:31:36 +0000 (11:31 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 25 Jan 2009 10:54:57 +0000 (11:54 +0100)
commit6626bff24578753808c8b5bd4f1619e14e980f0f
tree0577d712d26fcccf1c44a4eb32f767a8812237df
parent5b74f9e0e005baf12a2df6aaeef7d7134137792b
hrtimer: prevent negative expiry value after clock_was_set()

Impact: prevent false positive WARN_ON() in clockevents_program_event()

clock_was_set() changes the base->offset of CLOCK_REALTIME and
enforces the reprogramming of the clockevent device to expire timers
which are based on CLOCK_REALTIME. If the clock change is large enough
then the subtraction of the timer expiry value and base->offset can
become negative which triggers the warning in
clockevents_program_event().

Check the subtraction result and set a negative value to 0.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/hrtimer.c