diff options
-rw-r--r-- | common/x86_power.c | 6 | ||||
-rw-r--r-- | include/task.h | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/common/x86_power.c b/common/x86_power.c index 4d9f5bbcfe..1a31749cd2 100644 --- a/common/x86_power.c +++ b/common/x86_power.c @@ -446,8 +446,12 @@ void x86_power_task(void) system_hibernate(0, 0); } else { + uint64_t wait = target_time - time_now; + if (wait > TASK_MAX_WAIT_US) + wait = TASK_MAX_WAIT_US; + /* Wait for a message */ - task_wait_event(target_time - time_now); + task_wait_event(wait); } } diff --git a/include/task.h b/include/task.h index 1a7fb1b86f..ff3fe30f60 100644 --- a/include/task.h +++ b/include/task.h @@ -26,6 +26,9 @@ */ #define TASK_EVENT_TIMER (1U << 31) +/* Maximum time for task_wait_event() */ +#define TASK_MAX_WAIT_US 0x7fffffff + /** * Disable CPU interrupt bit. * |