From: Minep Date: Thu, 16 Jun 2022 16:20:38 +0000 (+0100) Subject: Merge branch 'master' into signal-dev X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/commitdiff_plain/58bc147210ab1363ee9ddc169a8e1c46ce24cf29?hp=e66387b252f36c894d79769cbfb178bc950600d4 Merge branch 'master' into signal-dev --- diff --git a/lunaix-os/kernel/asm/x86/interrupt.S b/lunaix-os/kernel/asm/x86/interrupt.S index 62c9ec5..27bdc4c 100644 --- a/lunaix-os/kernel/asm/x86/interrupt.S +++ b/lunaix-os/kernel/asm/x86/interrupt.S @@ -104,10 +104,11 @@ call intr_handler + movl (%esp), %eax + .global soft_iret soft_iret: - cli - popl %esp + movl %eax, %esp popl %eax popl %ebx diff --git a/lunaix-os/kernel/sched.c b/lunaix-os/kernel/sched.c index 8e5eecb..026fb51 100644 --- a/lunaix-os/kernel/sched.c +++ b/lunaix-os/kernel/sched.c @@ -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