diff --git a/arch/x86/kernel/entry.asm b/arch/x86/kernel/entry.asm index 84d41d39..8941848e 100644 --- a/arch/x86/kernel/entry.asm +++ b/arch/x86/kernel/entry.asm @@ -501,7 +501,9 @@ extern scheduler global reschedule reschedule: cli - pusha + ; eax could change across a function call + ; => we have not to save the original eax value + push ebx push DWORD [current_task] call scheduler @@ -519,7 +521,7 @@ hack1: jmp 0x00 : 0xDEADBEAF no_task_switch1: - popa + pop ebx sti ret