diff --git a/hermit/arch/x86/kernel/entry.asm b/hermit/arch/x86/kernel/entry.asm index 2173b571f..37767864d 100644 --- a/hermit/arch/x86/kernel/entry.asm +++ b/hermit/arch/x86/kernel/entry.asm @@ -506,8 +506,8 @@ switch_context: pushfq ; RFLAGS push QWORD 0x08 ; CS push QWORD rollback ; RIP - push QWORD 0x00 ; Interrupt number push QWORD 0x00edbabe ; Error code + push QWORD 0x00 ; Interrupt number push rax push rcx push rdx diff --git a/hermit/kernel/tasks.c b/hermit/kernel/tasks.c index ff2781f7c..039a40c6f 100644 --- a/hermit/kernel/tasks.c +++ b/hermit/kernel/tasks.c @@ -766,7 +766,7 @@ void check_timers(void) // check timers current_tick = get_clock_tick(); - while (readyqueues[core_id].timers.first && readyqueues[core_id].timers.first->timeout <= current_tick) + while (readyqueues[core_id].timers.first && readyqueues[core_id].timers.first->timeout >= current_tick) { task_t* task = readyqueues[core_id].timers.first;