diff --git a/kernel/timeout.c b/kernel/timeout.c index fa5afb00d8f..54fce1c0679 100644 --- a/kernel/timeout.c +++ b/kernel/timeout.c @@ -310,12 +310,13 @@ uint64_t sys_clock_timeout_end_calc(k_timeout_t timeout) return UINT64_MAX; } else if (K_TIMEOUT_EQ(timeout, K_NO_WAIT)) { return sys_clock_tick_get(); - } + } else { - dt = timeout.ticks; + dt = timeout.ticks; - if (IS_ENABLED(CONFIG_TIMEOUT_64BIT) && Z_TICK_ABS(dt) >= 0) { - return Z_TICK_ABS(dt); + if (IS_ENABLED(CONFIG_TIMEOUT_64BIT) && Z_TICK_ABS(dt) >= 0) { + return Z_TICK_ABS(dt); + } + return sys_clock_tick_get() + MAX(1, dt); } - return sys_clock_tick_get() + MAX(1, dt); }