summaryrefslogtreecommitdiff
path: root/debian/patches/sysenter0009-be-less-stoopid.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/sysenter0009-be-less-stoopid.patch')
-rw-r--r--debian/patches/sysenter0009-be-less-stoopid.patch38
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
+