From e3a8099343aac9d94f411638ad84632d4b620132 Mon Sep 17 00:00:00 2001 From: Miguel Date: Mon, 15 Oct 2018 16:29:50 +0200 Subject: cleanup sys/ etc --- kernel/scheduler.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'kernel/scheduler.c') diff --git a/kernel/scheduler.c b/kernel/scheduler.c index 2112659..59d26d1 100644 --- a/kernel/scheduler.c +++ b/kernel/scheduler.c @@ -363,11 +363,13 @@ void task_syscall_worker() task_list[cpu][0].vmem=task_list[cpu][i].vmem; // switch syscall worker to pagedir of calling userprog x86_set_page_directory(task_list[cpu][0].vmem); + x86_cli(); // we do not want to be scheduled to other page ... sorry TODO: suuuuckS! uint32_t ok = syscall_generic_test(task_list[cpu][i].eax, task_list[cpu][i].edx, task_list[cpu][i].ecx, task_list[cpu][i].ebx, task_list[cpu][i].pid); + x86_sti(); if(!ok) { @@ -375,11 +377,13 @@ void task_syscall_worker() continue; } + x86_cli(); // we do not want to be scheduled to other page ... sorry TODO: suuuuckS! uint32_t ret = syscall_generic(task_list[cpu][i].eax, task_list[cpu][i].edx, task_list[cpu][i].ecx, task_list[cpu][i].ebx, task_list[cpu][i].pid); + x86_sti(); // klog("... returned : %d",ret); -- cgit v1.2.3