Merge branch 'master' into sata-ahci-dev
[lunaix-os.git] / lunaix-os / kernel / sched.c
index 12deb174e7c90cc3fe5b6bd07055075d21f6e3ad..8e089d64b976be61ddf22fb77259caf9dea54f5b 100644 (file)
@@ -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);
 }