X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/620a2ee90a60979955c318cc1b37741184137bd6..01a605198da7bc5883a3dfa96b38f4f7c04f67f9:/lunaix-os/kernel/sched.c diff --git a/lunaix-os/kernel/sched.c b/lunaix-os/kernel/sched.c index 12deb17..8e089d6 100644 --- a/lunaix-os/kernel/sched.c +++ b/lunaix-os/kernel/sched.c @@ -59,7 +59,8 @@ run(struct proc_info* proc) apic_done_servicing(); asm volatile("pushl %0\n" - "jmp switch_to\n" ::"r"(proc)); // kernel/asm/x86/interrupt.S + "jmp switch_to\n" ::"r"(proc) + : "memory"); // kernel/asm/x86/interrupt.S } int @@ -237,7 +238,9 @@ repeat: done: cpu_disable_interrupt(); status_flags |= PEXITSIG * (proc->sig_inprogress != 0); - *status = proc->exit_code | status_flags; + if (status) { + *status = proc->exit_code | status_flags; + } return destroy_process(proc->pid); }