Merge branch 'master' into signal-dev
authorMinep <zelong56@gmail.com>
Thu, 16 Jun 2022 16:20:38 +0000 (17:20 +0100)
committerMinep <zelong56@gmail.com>
Thu, 16 Jun 2022 16:20:38 +0000 (17:20 +0100)
lunaix-os/kernel/asm/x86/interrupt.S
lunaix-os/kernel/sched.c

index 62c9ec512630270ec3215451ea7e33eca587244d..27bdc4c4cab8a0fcac2d8813bacf81b81f057d9d 100644 (file)
 
         call intr_handler
 
+        movl (%esp), %eax
+
     .global soft_iret
     soft_iret:
-        cli
-        popl %esp
+        movl %eax, %esp
 
         popl %eax
         popl %ebx
index 8e5eecbd342c511c29c2069aab8a6ec930947f19..026fb515a8dbfbc34410e868de18ccad40b7b308 100644 (file)
@@ -62,9 +62,9 @@ run(struct proc_info* proc)
 
     signal_dispatch();
 
-    asm volatile("pushl %0\n"
+    asm volatile("movl %0, %%eax\n"
                  "jmp soft_iret\n" ::"r"(&__current->intr_ctx)
-                 : "memory");
+                 : "eax", "memory");
 }
 
 void