From 9b4e8a82b57ed7f6d576efef308a7bb91854dbfc Mon Sep 17 00:00:00 2001 From: Chris Wright Date: Tue, 10 Jan 2006 23:26:54 -0800 Subject: [PATCH] Add sparc64 fixes, fwd from DaveM --- queue/series | 2 + queue/sparc64-fix-ptrace.patch | 49 +++++++++++++++++++ ...stat64-entry-in-64-bit-syscall-table.patch | 29 +++++++++++ 3 files changed, 80 insertions(+) create mode 100644 queue/sparc64-fix-ptrace.patch create mode 100644 queue/sparc64-fix-sys_fstat64-entry-in-64-bit-syscall-table.patch diff --git a/queue/series b/queue/series index a9e41d3534d..0f9f415d765 100644 --- a/queue/series +++ b/queue/series @@ -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 index 00000000000..d5095d4f68a --- /dev/null +++ b/queue/sparc64-fix-ptrace.patch @@ -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" +Subject: [SPARC64]: Fix ptrace/strace + +From: Richard Mortimer + +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 +Signed-off-by: Chris Wright +--- + + 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 index 00000000000..b38e1c2c062 --- /dev/null +++ b/queue/sparc64-fix-sys_fstat64-entry-in-64-bit-syscall-table.patch @@ -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" +Subject: [SPARC64]: Fix sys_fstat64() entry in 64-bit syscall table. + +Noticed by Jakub Jelinek. + +Signed-off-by: David S. Miller +Signed-off-by: Chris Wright +--- + + 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 -- 2.47.3