summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.064.7-syscall.patch')
-rw-r--r--sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.064.7-syscall.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.064.7-syscall.patch b/sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.064.7-syscall.patch
new file mode 100644
index 000000000000..5fbe686d9512
--- /dev/null
+++ b/sys-kernel/openvz-sources/files/openvz-sources-2.6.18.028.064.7-syscall.patch
@@ -0,0 +1,26 @@
+diff -urN linux-2.6.18-openvz-028.062.3/arch/x86_64/ia32/ia32entry.S linux-2.6.18-openvz-028.062.3-ia32entryfix/arch/x86_64/ia32/ia32entry.S
+--- linux-2.6.18-openvz-028.062.3/arch/x86_64/ia32/ia32entry.S 2009-06-28 22:48:31.000000000 -0600
++++ linux-2.6.18-openvz-028.062.3-ia32entryfix/arch/x86_64/ia32/ia32entry.S 2009-09-21 21:15:09.000000000 -0600
+@@ -329,9 +329,9 @@
+ orl $TS_COMPAT,threadinfo_status(%r10)
+ testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10)
+ jnz ia32_tracesys
+-ia32_do_syscall:
+ cmpl $(IA32_NR_syscalls-1),%eax
+- ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */
++ ja ia32_badsys
++ia32_do_call:
+ IA32_ARG_FIXUP
+ call *ia32_sys_call_table(,%rax,8) # xxx: rip relative
+ ia32_sysret:
+@@ -345,7 +345,9 @@
+ call syscall_trace_enter
+ LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */
+ RESTORE_REST
+- jmp ia32_do_syscall
++ cmpl $(IA32_NR_syscalls-1),%eax
++ ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */
++ jmp ia32_do_call
+ END(ia32_syscall)
+
+ ia32_badsys: