diff options
Diffstat (limited to 'debian/patches/sysenter0009-be-less-stoopid.patch')
-rw-r--r-- | debian/patches/sysenter0009-be-less-stoopid.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/patches/sysenter0009-be-less-stoopid.patch b/debian/patches/sysenter0009-be-less-stoopid.patch new file mode 100644 index 0000000..1366cc8 --- /dev/null +++ b/debian/patches/sysenter0009-be-less-stoopid.patch @@ -0,0 +1,38 @@ +From dd46af86ca22aa1af2f7843a624c436fefd6c51f Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Tue, 5 May 2015 20:50:37 +0200 +Subject: [PATCH gnumach 09/10] be less stoopid + +--- + i386/i386/locore.S | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/i386/i386/locore.S b/i386/i386/locore.S +index 8b4d766..0d08be5 100644 +--- a/i386/i386/locore.S ++++ b/i386/i386/locore.S +@@ -1303,10 +1303,7 @@ ENTRY(sysenter_entry) + pushl SE_GS(%ebp) + + xchgl %ebx, %esp /* switch to kernel stack */ +- pushl %ebx /* save pcb stack pointer */ +- movl %esp,%ebx /* save kernel sp for argument +- unwinding */ +- ++ /* %ebx points to user registers */ + negl %eax /* get system call number */ + /* xxx sysenter_mach_call_range */ + jl mach_call_range /* out of range if it was positive */ +@@ -1361,8 +1358,7 @@ se_args_0: + call *EXT(mach_trap_table)+4(%eax) + /* call procedure */ + cli /* xxx: sti/cli where ? */ +- movl %ebx, %esp /* clean parameters from stack */ +- popl %esp /* switch to pcb stack */ ++ movl %ebx, %esp /* switch to pcb stack */ + movl %eax, R_EAX(%esp) /* save return value */ + jmp _return_from_trap /* check for AST, then... */ + return_from_sysenter: /* return here */ +-- +2.1.4 + |