diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c index 822beebe664a59e98d3557c98a7ff8632423f6a1..5fb139fef9fa78821e0f85d640d211b1fbb0f5c7 100644 --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c @@ -78,6 +78,11 @@ int clockevents_program_event(struct clock_event_device *dev, ktime_t expires, unsigned long long clc; int64_t delta; + if (unlikely(expires.tv64 < 0)) { + WARN_ON_ONCE(1); + return -ETIME; + } + delta = ktime_to_ns(ktime_sub(expires, now)); if (delta <= 0)