]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add sparc64 fixes, fwd from DaveM
authorChris Wright <chrisw@sous-sol.org>
Wed, 11 Jan 2006 07:26:54 +0000 (23:26 -0800)
committerChris Wright <chrisw@sous-sol.org>
Wed, 11 Jan 2006 07:26:54 +0000 (23:26 -0800)
queue/series
queue/sparc64-fix-ptrace.patch [new file with mode: 0644]
queue/sparc64-fix-sys_fstat64-entry-in-64-bit-syscall-table.patch [new file with mode: 0644]

index a9e41d3534df0eeeffb4d5fd2f7bc43d180ed138..0f9f415d76546ae73b42c9a10ed889c707c35a75 100644 (file)
@@ -9,3 +9,5 @@ netlink-oops-fix-due-to-incorrect-error-code.patch
 netfilter-fix-crash-in-ip_nat_pptp.patch
 netfilter-fix-another-crash-in-ip_nat_pptp.patch
 fix-bridge-netfilter-matching-ip-fragments.patch
+sparc64-fix-ptrace.patch
+sparc64-fix-sys_fstat64-entry-in-64-bit-syscall-table.patch
diff --git a/queue/sparc64-fix-ptrace.patch b/queue/sparc64-fix-ptrace.patch
new file mode 100644 (file)
index 0000000..d5095d4
--- /dev/null
@@ -0,0 +1,49 @@
+From stable-bounces@linux.kernel.org  Tue Jan 10 13:35:08 2006
+Date: Tue, 10 Jan 2006 13:30:54 -0800 (PST)
+Message-Id: <20060110.133054.07150578.davem@davemloft.net>
+To: stable@kernel.org
+From: "David S. Miller" <davem@davemloft.net>
+Subject: [SPARC64]: Fix ptrace/strace
+
+From: Richard Mortimer <richm@oldelvet.org.uk>
+
+Don't clobber register %l0 while checking TI_SYS_NOERROR value in
+syscall return path.  This bug was introduced by:
+
+db7d9a4eb700be766cc9f29241483dbb1e748832
+
+Problem narrowed down by Luis F. Ortiz and Richard Mortimer.
+
+I tried using %l2 as suggested by Luis and that works for me.
+
+Looking at the code I wonder if it makes sense to simplify the code
+a little bit. The following works for me but I'm not sure how to
+exercise the "NOERROR" codepath.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+
+ arch/sparc64/kernel/entry.S |    7 ++-----
+ 1 files changed, 2 insertions(+), 5 deletions(-)
+
+Index: linux-2.6.15.y/arch/sparc64/kernel/entry.S
+===================================================================
+--- linux-2.6.15.y.orig/arch/sparc64/kernel/entry.S
++++ linux-2.6.15.y/arch/sparc64/kernel/entry.S
+@@ -1657,13 +1657,10 @@ ret_sys_call:
+       /* Check if force_successful_syscall_return()
+        * was invoked.
+        */
+-      ldub            [%curptr + TI_SYS_NOERROR], %l0
+-      brz,pt          %l0, 1f
+-       nop
+-      ba,pt           %xcc, 80f
++      ldub            [%curptr + TI_SYS_NOERROR], %l2
++      brnz,a,pn       %l2, 80f
+        stb            %g0, [%curptr + TI_SYS_NOERROR]
+-1:
+       cmp             %o0, -ERESTART_RESTARTBLOCK
+       bgeu,pn         %xcc, 1f
+        andcc          %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %l6
diff --git a/queue/sparc64-fix-sys_fstat64-entry-in-64-bit-syscall-table.patch b/queue/sparc64-fix-sys_fstat64-entry-in-64-bit-syscall-table.patch
new file mode 100644 (file)
index 0000000..b38e1c2
--- /dev/null
@@ -0,0 +1,29 @@
+From stable-bounces@linux.kernel.org  Tue Jan 10 13:36:13 2006
+Date: Tue, 10 Jan 2006 13:31:59 -0800 (PST)
+Message-Id: <20060110.133159.53060009.davem@davemloft.net>
+To: stable@kernel.org
+From: "David S. Miller" <davem@davemloft.net>
+Subject: [SPARC64]: Fix sys_fstat64() entry in 64-bit syscall table.
+
+Noticed by Jakub Jelinek.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+
+ arch/sparc64/kernel/systbls.S |    2 +-
+ 1 files changed, 1 insertion(+), 1 deletion(-)
+
+Index: linux-2.6.15.y/arch/sparc64/kernel/systbls.S
+===================================================================
+--- linux-2.6.15.y.orig/arch/sparc64/kernel/systbls.S
++++ linux-2.6.15.y/arch/sparc64/kernel/systbls.S
+@@ -98,7 +98,7 @@ sys_call_table:
+       .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
+ /*50*/        .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
+       .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
+-/*60*/        .word sys_umask, sys_chroot, sys_newfstat, sys_stat64, sys_getpagesize
++/*60*/        .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
+       .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
+ /*70*/        .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys64_munmap, sys_mprotect
+       .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups