[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
rpms/kernel/devel kernel-2.6.spec, 1.2485, 1.2486 linux-2.6-utrace.patch, 1.10, 1.11
- From: fedora-cvs-commits redhat com
- To: fedora-cvs-commits redhat com
- Subject: rpms/kernel/devel kernel-2.6.spec, 1.2485, 1.2486 linux-2.6-utrace.patch, 1.10, 1.11
- Date: Mon, 31 Jul 2006 19:30:27 -0400
Author: roland
Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv7570
Modified Files:
kernel-2.6.spec linux-2.6-utrace.patch
Log Message:
* Mon Jul 31 2006 Roland McGrath <roland redhat com>
- New utrace patch:
- fix ptrace_do_wait deadlock (#200822, #200605)
- arch cleanups
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2485
retrieving revision 1.2486
diff -u -r1.2485 -r1.2486
--- kernel-2.6.spec 31 Jul 2006 22:33:49 -0000 1.2485
+++ kernel-2.6.spec 31 Jul 2006 23:30:24 -0000 1.2486
@@ -1659,6 +1659,11 @@
%endif
%changelog
+* Mon Jul 31 2006 Roland McGrath <roland redhat com>
+- New utrace patch:
+ - fix ptrace_do_wait deadlock (#200822, #200605)
+ - arch cleanups
+
* Tue Aug 1 2006 Juan Quintela <quintela redhat com>
- disable blktap for xen-ia64 (don't compile).
- enable ia64-xen (it compiles, but still don't boot).
@@ -1679,7 +1684,7 @@
- Numerous GFS2/DLM fixes.
* Mon Jul 31 2006 Jeremy Katz <katzj redhat com>
-- new ahci suspend patch
+- new ahci suspend patch
* Mon Jul 31 2006 Dave Jones <davej redhat com>
- VFS: Destroy the dentries contributed by a superblock on unmounting [try #2]
linux-2.6-utrace.patch:
Documentation/utrace.txt | 455 +++++++++
arch/alpha/kernel/asm-offsets.c | 2
arch/alpha/kernel/entry.S | 4
arch/arm/kernel/ptrace.c | 36
arch/arm26/kernel/ptrace.c | 32
arch/frv/kernel/ptrace.c | 15
arch/i386/kernel/entry.S | 7
arch/i386/kernel/i387.c | 143 +-
arch/i386/kernel/process.c | 3
arch/i386/kernel/ptrace.c | 839 +++++++++--------
arch/i386/kernel/signal.c | 39
arch/i386/kernel/vm86.c | 7
arch/ia64/ia32/sys_ia32.c | 2
arch/ia64/kernel/asm-offsets.c | 2
arch/ia64/kernel/fsys.S | 16
arch/ia64/kernel/mca.c | 2
arch/ia64/kernel/ptrace.c | 41
arch/mips/kernel/ptrace.c | 21
arch/mips/kernel/sysirix.c | 2
arch/powerpc/kernel/Makefile | 4
arch/powerpc/kernel/asm-offsets.c | 2
arch/powerpc/kernel/process.c | 5
arch/powerpc/kernel/ptrace-common.h | 161 ---
arch/powerpc/kernel/ptrace.c | 785 +++++++---------
arch/powerpc/kernel/ptrace32.c | 436 --------
arch/powerpc/kernel/signal_32.c | 56 +
arch/powerpc/kernel/signal_64.c | 4
arch/powerpc/kernel/sys_ppc32.c | 5
arch/powerpc/lib/sstep.c | 3
arch/powerpc/platforms/cell/spufs/run.c | 2
arch/ppc/kernel/asm-offsets.c | 2
arch/s390/kernel/compat_linux.c | 3
arch/s390/kernel/compat_signal.c | 5
arch/s390/kernel/process.c | 3
arch/s390/kernel/ptrace.c | 551 ++++++++++-
arch/s390/kernel/signal.c | 4
arch/s390/kernel/traps.c | 6
arch/sparc64/kernel/entry.S | 6
arch/sparc64/kernel/process.c | 3
arch/sparc64/kernel/ptrace.c | 650 +++++++++++--
arch/sparc64/kernel/signal.c | 2
arch/sparc64/kernel/signal32.c | 2
arch/sparc64/kernel/sys_sparc32.c | 3
arch/sparc64/kernel/systbls.S | 4
arch/x86_64/ia32/fpu32.c | 92 +
arch/x86_64/ia32/ia32_aout.c | 6
arch/x86_64/ia32/ia32_signal.c | 8
arch/x86_64/ia32/ia32entry.S | 2
arch/x86_64/ia32/ptrace32.c | 688 +++++++++-----
arch/x86_64/ia32/sys_ia32.c | 5
arch/x86_64/kernel/process.c | 5
arch/x86_64/kernel/ptrace.c | 619 +++++++-----
arch/x86_64/kernel/signal.c | 30
arch/x86_64/kernel/traps.c | 8
arch/x86_64/mm/fault.c | 4
drivers/connector/cn_proc.c | 4
fs/binfmt_aout.c | 6
fs/binfmt_elf.c | 6
fs/binfmt_elf_fdpic.c | 7
fs/binfmt_flat.c | 3
fs/binfmt_som.c | 2
fs/exec.c | 11
fs/proc/array.c | 7
fs/proc/base.c | 17
include/asm-i386/i387.h | 13
include/asm-i386/signal.h | 4
include/asm-i386/thread_info.h | 7
include/asm-i386/tracehook.h | 74 +
include/asm-powerpc/tracehook.h | 303 ++++++
include/asm-s390/tracehook.h | 105 ++
include/asm-sparc64/tracehook.h | 44
include/asm-x86_64/fpu32.h | 3
include/asm-x86_64/thread_info.h | 2
include/asm-x86_64/tracehook.h | 106 ++
include/linux/init_task.h | 3
include/linux/ptrace.h | 86 -
include/linux/sched.h | 25
include/linux/tracehook.h | 641 +++++++++++++
include/linux/utrace.h | 471 +++++++++
init/Kconfig | 29
kernel/Makefile | 1
kernel/exit.c | 259 +----
kernel/fork.c | 60 -
kernel/ptrace.c | 1562 +++++++++++++++++++++++++-------
kernel/signal.c | 211 ----
kernel/sys.c | 2
kernel/timer.c | 6
kernel/utrace.c | 1520 +++++++++++++++++++++++++++++++
security/selinux/hooks.c | 6
89 files changed, 8167 insertions(+), 3281 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.10 -r 1.11 linux-2.6-utrace.patch
Index: linux-2.6-utrace.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-utrace.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- linux-2.6-utrace.patch 27 Jul 2006 22:31:59 -0000 1.10
+++ linux-2.6-utrace.patch 31 Jul 2006 23:30:24 -0000 1.11
@@ -1,13 +1,13 @@
- Documentation/utrace.txt | 451 +++++++++
+ Documentation/utrace.txt | 455 +++++++++
arch/alpha/kernel/asm-offsets.c | 2
arch/alpha/kernel/entry.S | 4
arch/arm/kernel/ptrace.c | 36 -
arch/arm26/kernel/ptrace.c | 32 -
arch/frv/kernel/ptrace.c | 15
arch/i386/kernel/entry.S | 7
- arch/i386/kernel/i387.c | 143 ++-
+ arch/i386/kernel/i387.c | 143 +--
arch/i386/kernel/process.c | 3
- arch/i386/kernel/ptrace.c | 862 +++++++++--------
+ arch/i386/kernel/ptrace.c | 839 +++++++++--------
arch/i386/kernel/signal.c | 39 -
arch/i386/kernel/vm86.c | 7
arch/ia64/ia32/sys_ia32.c | 2
@@ -21,7 +21,7 @@
arch/powerpc/kernel/asm-offsets.c | 2
arch/powerpc/kernel/process.c | 5
arch/powerpc/kernel/ptrace-common.h | 161 ---
- arch/powerpc/kernel/ptrace.c | 842 +++++++++--------
+ arch/powerpc/kernel/ptrace.c | 785 +++++++---------
arch/powerpc/kernel/ptrace32.c | 436 ---------
arch/powerpc/kernel/signal_32.c | 56 +
arch/powerpc/kernel/signal_64.c | 4
@@ -32,18 +32,24 @@
arch/s390/kernel/compat_linux.c | 3
arch/s390/kernel/compat_signal.c | 5
arch/s390/kernel/process.c | 3
- arch/s390/kernel/ptrace.c | 690 +++++++++++++-
+ arch/s390/kernel/ptrace.c | 551 ++++++++++-
arch/s390/kernel/signal.c | 4
arch/s390/kernel/traps.c | 6
- arch/sparc64/kernel/ptrace.c | 18
+ arch/sparc64/kernel/entry.S | 6
+ arch/sparc64/kernel/process.c | 3
+ arch/sparc64/kernel/ptrace.c | 650 +++++++++++--
+ arch/sparc64/kernel/signal.c | 2
+ arch/sparc64/kernel/signal32.c | 2
+ arch/sparc64/kernel/sys_sparc32.c | 3
+ arch/sparc64/kernel/systbls.S | 4
arch/x86_64/ia32/fpu32.c | 92 +-
arch/x86_64/ia32/ia32_aout.c | 6
arch/x86_64/ia32/ia32_signal.c | 8
arch/x86_64/ia32/ia32entry.S | 2
- arch/x86_64/ia32/ptrace32.c | 699 +++++++++-----
+ arch/x86_64/ia32/ptrace32.c | 690 +++++++++-----
arch/x86_64/ia32/sys_ia32.c | 5
arch/x86_64/kernel/process.c | 5
- arch/x86_64/kernel/ptrace.c | 632 ++++++++-----
+ arch/x86_64/kernel/ptrace.c | 619 +++++++-----
arch/x86_64/kernel/signal.c | 30 -
arch/x86_64/kernel/traps.c | 8
arch/x86_64/mm/fault.c | 4
@@ -59,34 +65,36 @@
include/asm-i386/i387.h | 13
include/asm-i386/signal.h | 4
include/asm-i386/thread_info.h | 7
- include/asm-i386/tracehook.h | 73 +
- include/asm-powerpc/tracehook.h | 302 ++++++
- include/asm-s390/tracehook.h | 103 ++
+ include/asm-i386/tracehook.h | 74 +
+ include/asm-powerpc/tracehook.h | 303 ++++++
+ include/asm-s390/tracehook.h | 105 ++
+ include/asm-sparc64/tracehook.h | 44 +
include/asm-x86_64/fpu32.h | 3
include/asm-x86_64/thread_info.h | 2
- include/asm-x86_64/tracehook.h | 105 ++
+ include/asm-x86_64/tracehook.h | 106 ++
include/linux/init_task.h | 3
include/linux/ptrace.h | 86 +-
- include/linux/sched.h | 25 -
- include/linux/tracehook.h | 566 +++++++++++
- include/linux/utrace.h | 471 ++++++++++
+ include/linux/sched.h | 25
+ include/linux/tracehook.h | 641 +++++++++++++
+ include/linux/utrace.h | 471 +++++++++
init/Kconfig | 29 +
kernel/Makefile | 1
- kernel/exit.c | 251 +----
+ kernel/exit.c | 259 +----
kernel/fork.c | 60 -
- kernel/ptrace.c | 1531 ++++++++++++++++++++++++-------
+ kernel/ptrace.c | 1562 ++++++++++++++++++++++++-------
kernel/signal.c | 211 +---
kernel/sys.c | 2
kernel/timer.c | 6
- kernel/utrace.c | 1501 ++++++++++++++++++++++++++++++
+ kernel/utrace.c | 1520 ++++++++++++++++++++++++++++++
security/selinux/hooks.c | 6
- 82 files changed, 7666 insertions(+), 3187 deletions(-)
+ 89 files changed, 8168 insertions(+), 3282 deletions(-)
create mode 100644 Documentation/utrace.txt
delete arch/powerpc/kernel/ptrace-common.h
delete arch/powerpc/kernel/ptrace32.c
create mode 100644 include/asm-i386/tracehook.h
create mode 100644 include/asm-powerpc/tracehook.h
create mode 100644 include/asm-s390/tracehook.h
+ create mode 100644 include/asm-sparc64/tracehook.h
create mode 100644 include/asm-x86_64/tracehook.h
create mode 100644 include/linux/tracehook.h
create mode 100644 include/linux/utrace.h
@@ -94,7 +102,7 @@
--- linux-2.6/include/asm-powerpc/tracehook.h.utrace-ptrace-compat
+++ linux-2.6/include/asm-powerpc/tracehook.h
-@@ -0,0 +1,302 @@
+@@ -0,0 +1,303 @@
+/*
+ * Tracing hooks, PowerPC CPU support
+ */
@@ -109,6 +117,7 @@
+ * See linux/tracehook.h for the descriptions of what these need to do.
+ */
+
++#define ARCH_HAS_SINGLE_STEP (1)
+
+static inline void tracehook_enable_single_step(struct task_struct *task)
+{
@@ -474,7 +483,7 @@
--- linux-2.6/include/asm-i386/tracehook.h.utrace-ptrace-compat
+++ linux-2.6/include/asm-i386/tracehook.h
-@@ -0,0 +1,73 @@
+@@ -0,0 +1,74 @@
+/*
+ * Tracing hooks, i386 CPU support
+ */
@@ -489,6 +498,7 @@
+ * See linux/tracehook.h for the descriptions of what these need to do.
+ */
+
++#define ARCH_HAS_SINGLE_STEP (1)
+
+/* These two are defined in arch/i386/kernel/ptrace.c. */
+void tracehook_enable_single_step(struct task_struct *tsk);
@@ -550,7 +560,7 @@
+#endif
--- linux-2.6/include/asm-s390/tracehook.h.utrace-ptrace-compat
+++ linux-2.6/include/asm-s390/tracehook.h
-@@ -0,0 +1,103 @@
+@@ -0,0 +1,105 @@
+/*
+ * Tracing hooks, s390/s390x support.
+ */
@@ -565,6 +575,8 @@
+ * See linux/tracehook.h for the descriptions of what these need to do.
+ */
+
++#define ARCH_HAS_SINGLE_STEP (1)
++
+/* These three are defined in arch/s390/kernel/ptrace.c. */
+void tracehook_enable_single_step(struct task_struct *tsk);
+void tracehook_disable_single_step(struct task_struct *tsk);
@@ -684,7 +696,7 @@
#define _TIF_WORK_MASK \
--- linux-2.6/include/asm-x86_64/tracehook.h.utrace-ptrace-compat
+++ linux-2.6/include/asm-x86_64/tracehook.h
-@@ -0,0 +1,105 @@
+@@ -0,0 +1,106 @@
+/*
+ * Tracing hooks, x86-64 CPU support
+ */
@@ -700,6 +712,7 @@
+ * See linux/tracehook.h for the descriptions of what these need to do.
+ */
+
++#define ARCH_HAS_SINGLE_STEP (1)
+
+/* These two are defined in arch/x86_64/kernel/ptrace.c. */
+void tracehook_enable_single_step(struct task_struct *tsk);
@@ -790,6 +803,53 @@
+
+
+#endif
+--- linux-2.6/include/asm-sparc64/tracehook.h.utrace-ptrace-compat
++++ linux-2.6/include/asm-sparc64/tracehook.h
+@@ -0,0 +1,44 @@
++/*
++ * Tracing hooks, SPARC64 CPU support
++ */
++
++#ifndef _ASM_TRACEHOOK_H
++#define _ASM_TRACEHOOK_H 1
++
++
++#include <linux/sched.h>
++#include <asm/ptrace.h>
++
++/*
++ * See linux/tracehook.h for the descriptions of what these need to do.
[...3696 lines suppressed...]
++ if (ret == 0)
++ ret = utrace_regset_copyin(&pos, &count, &kbuf, &ubuf,
++ &fp, 0, -1);
if (ret)
return ret;
- if (copy_to_user(si, &ssi, sizeof(siginfo_t)))
-+ if (kbuf)
-+ memcpy(&u.buf[pos], kbuf, count);
-+ else if (__copy_from_user(&u.buf[pos], ubuf, count))
- return -EFAULT;
-+ kbuf = &u;
+- return -EFAULT;
++ kbuf = &fp;
}
- ret = sys_ptrace(request, pid, addr, (unsigned long)si);
- if (ret)
@@ -12456,10 +13216,10 @@
- if (request == PTRACE_GETSIGINFO) {
- if (copy_from_user(&ssi, si, sizeof(siginfo_t)))
+ else if (kbuf == NULL) {
-+ if (__copy_from_user(&u.fp, ubuf, sizeof u.fp))
++ if (__copy_from_user(&fp, ubuf, sizeof(fp)))
return -EFAULT;
- ret = copy_siginfo_to_user32(si32, &ssi);
-+ kbuf = &u;
++ kbuf = &fp;
}
- return ret;
+
@@ -12470,14 +13230,39 @@
+static int
+ia32_fpxregs_active(struct task_struct *target,
+ const struct utrace_regset *regset)
++{
++ return tsk_used_math(target) ? regset->n : 0;
++}
++
++static int
++ia32_fpxregs_get(struct task_struct *target,
++ const struct utrace_regset *regset,
++ unsigned int pos, unsigned int count,
++ void *kbuf, void __user *ubuf)
++{
++ if (tsk_used_math(target)) {
++ if (target == current)
++ unlazy_fpu(target);
++ }
++ else
++ init_fpu(target);
++
++ return utrace_regset_copyout(&pos, &count, &kbuf, &ubuf,
++ &target->thread.i387.fxsave, 0, -1);
++}
++
++static int
++ia32_fpxregs_set(struct task_struct *target,
++ const struct utrace_regset *regset,
++ unsigned int pos, unsigned int count,
++ const void *kbuf, const void __user *ubuf)
++
{
- struct task_struct *child;
- struct pt_regs *childregs;
- void __user *datap = compat_ptr(data);
-- int ret;
+ int ret;
- __u32 val;
-+ return tsk_used_math(target) ? regset->n : 0;
-+}
- switch (request) {
- case PTRACE_TRACEME:
@@ -12489,23 +13274,20 @@
- case PTRACE_SYSCALL:
- case PTRACE_SETOPTIONS:
- return sys_ptrace(request, pid, addr, data);
-+static int
-+ia32_fpxregs_get(struct task_struct *target,
-+ const struct utrace_regset *regset,
-+ unsigned int pos, unsigned int count,
-+ void *kbuf, void __user *ubuf)
-+{
-+ void *tbuf = &target->thread.i387.fxsave;
-
-- default:
-- return -EINVAL;
+ if (tsk_used_math(target)) {
+ if (target == current)
+ unlazy_fpu(target);
+ }
++ else if (pos == 0 && count == sizeof(struct i387_fxsave_struct))
++ set_stopped_child_used_math(target);
+ else
+ init_fpu(target);
+- default:
+- return -EINVAL;
++ ret = utrace_regset_copyin(&pos, &count, &kbuf, &ubuf,
++ &target->thread.i387.fxsave, 0, -1);
+
- case PTRACE_PEEKTEXT:
- case PTRACE_PEEKDATA:
- case PTRACE_POKEDATA:
@@ -12545,10 +13327,7 @@
- else
- ret = put_user(val, (unsigned int __user *)datap);
- break;
-+ if (kbuf) {
-+ memcpy(kbuf, tbuf + pos, count);
-+ return 0;
-+ }
++ target->thread.i387.fxsave.mxcsr &= mxcsr_feature_mask;
- case PTRACE_POKEDATA:
- case PTRACE_POKETEXT:
@@ -12556,7 +13335,7 @@
- if (access_process_vm(child, addr, &data, sizeof(u32), 1)!=sizeof(u32))
- ret = -EIO;
- break;
-+ return __copy_to_user(ubuf, tbuf + pos, count) ? -EFAULT : 0;
++ return ret;
+}
- case PTRACE_PEEKUSR:
@@ -12565,33 +13344,24 @@
- ret = put_user(val, (__u32 __user *)datap);
- break;
+static int
-+ia32_fpxregs_set(struct task_struct *target,
-+ const struct utrace_regset *regset,
-+ unsigned int pos, unsigned int count,
-+ const void *kbuf, const void __user *ubuf)
++ia32_dbregs_active(struct task_struct *tsk, const struct utrace_regset *regset)
++{
++ if (tsk->thread.debugreg6 | tsk->thread.debugreg7)
++ return 8;
++ return 0;
++}
- case PTRACE_POKEUSR:
- ret = putreg32(child, addr, data);
- break;
++static int
++ia32_dbregs_get(struct task_struct *target,
++ const struct utrace_regset *regset,
++ unsigned int pos, unsigned int count,
++ void *kbuf, void __user *ubuf)
+{
-+ union {
-+ struct i387_fxsave_struct fp;
-+ char buf[sizeof(struct i387_fxsave_struct)];
-+ } *u = (void *) &target->thread.i387.fxsave;
-+
-+ if (tsk_used_math(target)) {
-+ if (target == current)
-+ unlazy_fpu(target);
-+ }
-+ else if (pos == 0 && count == sizeof(struct i387_fxsave_struct))
-+ set_stopped_child_used_math(target);
-+ else
-+ init_fpu(target);
-+
-+ if (kbuf)
-+ memcpy(&u->buf[pos], kbuf, count);
-+ else if (__copy_from_user(&u->buf[pos], ubuf, count))
-+ return -EFAULT;
++ for (pos >>= 2, count >>= 2; count > 0; --count, ++pos) {
++ u32 val;
- case PTRACE_GETREGS: { /* Get all gp regs from the child. */
- int i;
@@ -12604,28 +13374,6 @@
- getreg32(child, i, &val);
- ret |= __put_user(val,(u32 __user *)datap);
- datap += sizeof(u32);
-+ u->fp.mxcsr &= mxcsr_feature_mask;
-+
-+ return 0;
-+}
-+
-+static int
-+ia32_dbregs_active(struct task_struct *tsk, const struct utrace_regset *regset)
-+{
-+ if (tsk->thread.debugreg6 | tsk->thread.debugreg7)
-+ return 8;
-+ return 0;
-+}
-+
-+static int
-+ia32_dbregs_get(struct task_struct *target,
-+ const struct utrace_regset *regset,
-+ unsigned int pos, unsigned int count,
-+ void *kbuf, void __user *ubuf)
-+{
-+ for (pos >>= 2, count >>= 2; count > 0; --count, ++pos) {
-+ u32 val;
-+
+ /*
+ * The hardware updates the status register on a debug trap,
+ * but do_debug (traps.c) saves it for us when that happens.
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]