fedora-cvs-commits@redhat.com
[Top] [All Lists]

rpms/kernel/FC-6 kernel-2.6.spec, 1.2992, 1.2993 linux-2.6-sched-cfs.pat

Subject: rpms/kernel/FC-6 kernel-2.6.spec, 1.2992, 1.2993 linux-2.6-sched-cfs.patch, 1.7, 1.8 linux-2.6-utrace-core.patch, 1.3, 1.4 linux-2.6-utrace-ptrace-compat.patch, 1.4, 1.5 linux-2.6-utrace-tracehook.patch, 1.3, 1.4 linux-2.6-utrace.patch, 1.46, NONE
From:
Date: Fri, 20 Jul 2007 14:47:42 -0400
Author: cebbert

Update of /cvs/dist/rpms/kernel/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv30770

Modified Files:
        kernel-2.6.spec linux-2.6-sched-cfs.patch 
        linux-2.6-utrace-core.patch 
        linux-2.6-utrace-ptrace-compat.patch 
        linux-2.6-utrace-tracehook.patch 
Removed Files:
        linux-2.6-utrace.patch 
Log Message:
* Fri Jul 20 2007 Chuck Ebbert <cebbert@xxxxxxxxxx>
- utrace update
- CFS scheduler update



Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v
retrieving revision 1.2992
retrieving revision 1.2993
diff -u -r1.2992 -r1.2993
--- kernel-2.6.spec     19 Jul 2007 17:46:35 -0000      1.2992
+++ kernel-2.6.spec     20 Jul 2007 18:47:38 -0000      1.2993
@@ -1058,7 +1058,7 @@
 ApplyPatch linux-2.6-sched-cfs.patch
 
 # Roland's utrace ptrace replacement.
-ApplyPatch linux-2.6-utrace-tracehook.patch
+ApplyPatch linux-2.6-utrace-tracehook.patch -F2
 ApplyPatch linux-2.6-utrace-tracehook-ia64.patch
 ApplyPatch linux-2.6-utrace-tracehook-sparc64.patch
 ApplyPatch linux-2.6-utrace-tracehook-s390.patch
@@ -2218,6 +2218,10 @@
 %endif
 
 %changelog
+* Fri Jul 20 2007 Chuck Ebbert <cebbert@xxxxxxxxxx>
+- utrace update
+- CFS scheduler update
+
 * Thu Jul 19 2007 Chuck Ebbert <cebbert@xxxxxxxxxx>
 - restore the libata COMBINED_MODE hacks
 - set CONFIG_NF_CONNTRACK_PROC_COMPAT

linux-2.6-sched-cfs.patch:
 b/kernel/sched.c                          |   26 
 b/kernel/time.c                           |   32 
 kernel/sched.c                            |   14 
 linux/Documentation/kernel-parameters.txt |   43 
 linux/Documentation/sched-design-CFS.txt  |  119 +
 linux/arch/i386/kernel/smpboot.c          |   12 
 linux/arch/i386/kernel/tsc.c              |    9 
 linux/arch/ia64/kernel/setup.c            |    6 
 linux/arch/mips/kernel/smp.c              |   11 
 linux/arch/sparc/kernel/smp.c             |   10 
 linux/arch/sparc64/kernel/smp.c           |   27 
 linux/block/cfq-iosched.c                 |    3 
 linux/fs/proc/array.c                     |   59 
 linux/fs/proc/base.c                      |   71 
 linux/include/asm-generic/bitops/sched.h  |   21 
 linux/include/linux/hardirq.h             |   13 
 linux/include/linux/sched.h               |  258 +-
 linux/include/linux/time.h                |   13 
 linux/include/linux/topology.h            |   14 
 linux/init/main.c                         |    5 
 linux/kernel/delayacct.c                  |   10 
 linux/kernel/exit.c                       |    5 
 linux/kernel/fork.c                       |    5 
 linux/kernel/posix-cpu-timers.c           |   34 
 linux/kernel/sched.c                      | 2980 +++++++++++-------------------
 linux/kernel/sched_debug.c                |  276 ++
 linux/kernel/sched_fair.c                 | 1107 +++++++++++
 linux/kernel/sched_idletask.c             |   71 
 linux/kernel/sched_rt.c                   |  255 ++
 linux/kernel/sched_stats.h                |  235 ++
 linux/kernel/softirq.c                    |    1 
 linux/kernel/sysctl.c                     |   76 
 linux/kernel/time.c                       |   25 
 linux/kernel/time/timekeeping.c           |   27 
 34 files changed, 3714 insertions(+), 2159 deletions(-)

Index: linux-2.6-sched-cfs.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-sched-cfs.patch,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- linux-2.6-sched-cfs.patch   17 Jul 2007 19:10:57 -0000      1.7
+++ linux-2.6-sched-cfs.patch   20 Jul 2007 18:47:39 -0000      1.8
@@ -16,12 +16,20 @@
 4bd77321a833077c5c9ac7b9d284e261e4a8906e
 sched: fix show_task()/show_tasks() output
 
-[not in mainline yet]
+9439aab8dbc33c2c03c3a19dba267360383ba38c
 sched: fix newly idle load balance in case of SMT
 
-[not in mainline yet]
+969bb4e4032dac67287951d8f6642a3b5119694e
 sched: fix the all pinned logic in load_balance_newidle()
 
+[remove the original sys_time() speedup]
+
+4e44f3497d41db4c3b9051c61410dee8ae4fb49c
+sys_time() speedup
+
+[not merged yet]
+time: introduce xtime_seconds
+
 Index: linux/Documentation/kernel-parameters.txt
 ===================================================================
 --- linux.orig/Documentation/kernel-parameters.txt
@@ -7664,10 +7672,58 @@
                .ctl_name       = KERN_PANIC,
                .procname       = "panic",
                .data           = &panic_timeout,
-Index: linux/kernel/time.c
-===================================================================
---- linux.orig/kernel/time.c
-+++ linux/kernel/time.c
+Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4e44f3497d41db4c3b9051c61410dee8ae4fb49c
+Commit:     4e44f3497d41db4c3b9051c61410dee8ae4fb49c
+Parent:     f482394ccbca7234d29cc146d4a2b94f976ce5a1
+Author:     Ingo Molnar <mingo@xxxxxxx>
+AuthorDate: Sun Jul 15 23:41:18 2007 -0700
+Committer:  Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxxxxxxxx>
+CommitDate: Mon Jul 16 09:05:48 2007 -0700
+
+    sys_time() speedup
+    
+    Improve performance of sys_time().  sys_time() returns time in seconds, but
+    it does so by calling do_gettimeofday() and then returning the tv_sec
+    portion of the GTOD time.  But the data structure "xtime", which is updated
+    by every timer/scheduler tick, already offers HZ granularity time.
+    
+    The patch improves the sysbench OLTP macrobenchmark significantly:
+    
+    2.6.22-rc6:
+    
+    #threads
+       1:        transactions:                        3733   (373.21 per sec.)
+       2:        transactions:                        6676   (667.46 per sec.)
+       3:        transactions:                        6957   (695.50 per sec.)
+       4:        transactions:                        7055   (705.48 per sec.)
+       5:        transactions:                        6596   (659.33 per sec.)
+    
+    2.6.22-rc6 + sys_time.patch:
+    
+       1:        transactions:                        4005   (400.47 per sec.)
+       2:        transactions:                        7379   (737.77 per sec.)
+       3:        transactions:                        7347   (734.49 per sec.)
+       4:        transactions:                        7468   (746.65 per sec.)
+       5:        transactions:                        7428   (742.47 per sec.)
+    
+    Mixed API uses of gettimeofday() and time() are guaranteed to be coherent
+    via the use of a at-most-once-per-second slowpath that updates xtime.
+    
+    [akpm@xxxxxxxxxxxxxxxxxxxx: build fixes]
+    Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
+    Cc: John Stultz <johnstul@xxxxxxxxxx>
+    Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
+    Cc: Roman Zippel <zippel@xxxxxxxxxxxxxx>
+    Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
+    Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
+---
+ kernel/time.c |   32 ++++++++++++++++++++++++--------
+ 1 files changed, 24 insertions(+), 8 deletions(-)
+
+diff --git a/kernel/time.c b/kernel/time.c
+index f04791f..ffe1914 100644
+--- a/kernel/time.c
++++ b/kernel/time.c
 @@ -57,14 +57,17 @@ EXPORT_SYMBOL(sys_tz);
   */
  asmlinkage long sys_time(time_t __user * tloc)
@@ -7691,11 +7747,12 @@
                        i = -EFAULT;
        }
        return i;
-@@ -373,6 +376,20 @@ void do_gettimeofday (struct timeval *tv
+@@ -373,12 +376,25 @@ void do_gettimeofday (struct timeval *tv)
  
        tv->tv_sec = sec;
        tv->tv_usec = usec;
-+
+-}
+ 
 +      /*
 +       * Make sure xtime.tv_sec [returned by sys_time()] always
 +       * follows the gettimeofday() result precisely. This
@@ -7707,41 +7764,26 @@
 +
 +              write_seqlock_irqsave(&xtime_lock, flags);
 +              update_wall_time();
-+              write_seqlock_irqrestore(&xtime_lock, flags);
++              write_sequnlock_irqrestore(&xtime_lock, flags);
 +      }
- }
- 
++}
  EXPORT_SYMBOL(do_gettimeofday);
-Index: linux/lib/Kconfig.debug
-===================================================================
---- linux.orig/lib/Kconfig.debug
-+++ linux/lib/Kconfig.debug
-@@ -105,6 +105,15 @@ config DETECT_SOFTLOCKUP
-          can be detected via the NMI-watchdog, on platforms that
-          support it.)
- 
-+config SCHED_DEBUG
-+      bool "Collect scheduler debugging info"
-+      depends on DEBUG_KERNEL && PROC_FS
-+      default y
-+      help
-+        If you say Y here, the /proc/sched_debug file will be provided
-+        that can help debug the scheduler. The runtime overhead of this
-+        option is minimal.
-+
- config SCHEDSTATS
-       bool "Collect scheduler statistics"
-       depends on DEBUG_KERNEL && PROC_FS
---- linux-2.6.22.noarch/kernel/time.c~ 2007-07-10 13:43:47.000000000 -0400
-+++ linux-2.6.22.noarch/kernel/time.c  2007-07-10 13:43:53.000000000 -0400
-@@ -35,6 +35,7 @@
- #include <linux/security.h>
- #include <linux/fs.h>
- #include <linux/module.h>
-+#include <linux/seqlock.h>
  
- #include <asm/uaccess.h>
- #include <asm/unistd.h>
++#else /* CONFIG_TIME_INTERPOLATION */
+ 
+-#else
+ #ifndef CONFIG_GENERIC_TIME
+ /*
+  * Simulate gettimeofday using do_gettimeofday which only allows a timeval
+@@ -394,7 +410,7 @@ void getnstimeofday(struct timespec *tv)
+ }
+ EXPORT_SYMBOL_GPL(getnstimeofday);
+ #endif
+-#endif
++#endif        /* CONFIG_TIME_INTERPOLATION */
+ 
+ /* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
+  * Assumes input in normal date format, i.e. 1980-12-31 23:59:59
 Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4bd77321a833077c5c9ac7b9d284e261e4a8906e
 Commit:     4bd77321a833077c5c9ac7b9d284e261e4a8906e
 Parent:     45f384a64f0769bb9a3caf0516de88a629f48e61
@@ -7910,3 +7952,220 @@
                        cpu_clear(cpu_of(busiest), cpus);
                        if (!cpus_empty(cpus))
                                goto redo;
+Subject: time: introduce xtime_seconds
+From: Ingo Molnar <mingo@xxxxxxx>
+
+introduce the xtime_seconds optimization. This is a read-mostly 
+low-resolution time source available to sys_time() and kernel-internal 
+use. This variable is kept uptodate atomically, and it's monotically 
+increased, every time some time interface constructs an xtime-alike time 
+result that overflows the seconds value. (it's updated from the timer 
+interrupt as well)
+
+this way high-resolution time results update their seconds component at 
+the same time sys_time() does it:
+
+ 1184858832999989000
+ 1184858832000000000
+ 1184858832999992000
+ 1184858832000000000
+ 1184858832999996000
+ 1184858832000000000
+ 1184858832999999000
+ 1184858832000000000
+ 1184858833000003000
+ 1184858833000000000
+ 1184858833000006000
+ 1184858833000000000
+ 1184858833000009000
+ 1184858833000000000
+
+ [ these are nsec time results from alternating calls to sys_time() and 
+   sys_gettimeofday(), recorded at the seconds boundary. ]
+
+instead of the previous (non-coherent) behavior:
+
+ 1184848950999987000
+ 1184848950000000000
+ 1184848950999990000
+ 1184848950000000000
+ 1184848950999994000
+ 1184848950000000000
+ 1184848950999997000
+ 1184848950000000000
+ 1184848951000001000
+ 1184848950000000000
+ 1184848951000005000
+ 1184848950000000000
+ 1184848951000008000
+ 1184848950000000000
+ 1184848951000011000
+ 1184848950000000000
+ 1184848951000015000
+
+Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
+---
+ include/linux/time.h      |   13 +++++++++++--
+ kernel/time.c             |   25 ++++++-------------------
+ kernel/time/timekeeping.c |   28 ++++++++++++++++++++++++----
+ 3 files changed, 41 insertions(+), 25 deletions(-)
+
+Index: linux/include/linux/time.h
+===================================================================
+--- linux.orig/include/linux/time.h
++++ linux/include/linux/time.h
+@@ -91,19 +91,28 @@ static inline struct timespec timespec_s
+ extern struct timespec xtime;
+ extern struct timespec wall_to_monotonic;
+ extern seqlock_t xtime_lock __attribute__((weak));
++extern unsigned long xtime_seconds;
+ 
+ extern unsigned long read_persistent_clock(void);
+ void timekeeping_init(void);
+ 
++extern void __update_xtime_seconds(unsigned long new_xtime_seconds);
++
++static inline void update_xtime_seconds(unsigned long new_xtime_seconds)
++{
++      if (unlikely((long)(new_xtime_seconds - xtime_seconds) > 0))
++              __update_xtime_seconds(new_xtime_seconds);
++}
++
+ static inline unsigned long get_seconds(void)
+ {
+-      return xtime.tv_sec;
++      return xtime_seconds;
+ }
+ 
+ struct timespec current_kernel_time(void);
+ 
+ #define CURRENT_TIME          (current_kernel_time())
+-#define CURRENT_TIME_SEC      ((struct timespec) { xtime.tv_sec, 0 })
++#define CURRENT_TIME_SEC      ((struct timespec) { xtime_seconds, 0 })
+ 
+ extern void do_gettimeofday(struct timeval *tv);
+ extern int do_settimeofday(struct timespec *tv);
+Index: linux/kernel/time.c
+===================================================================
+--- linux.orig/kernel/time.c
++++ linux/kernel/time.c
+@@ -58,11 +58,10 @@ EXPORT_SYMBOL(sys_tz);
+ asmlinkage long sys_time(time_t __user * tloc)
+ {
+       /*
+-       * We read xtime.tv_sec atomically - it's updated
+-       * atomically by update_wall_time(), so no need to
+-       * even read-lock the xtime seqlock:
++       * We read xtime_seconds atomically - it's updated
++       * atomically by update_xtime_seconds():
+        */
+-      time_t i = xtime.tv_sec;
++      time_t i = xtime_seconds;
+ 
+       smp_rmb(); /* sys_time() results are coherent */
+ 
+@@ -226,11 +225,11 @@ inline struct timespec current_kernel_ti
+ 
+       do {
+               seq = read_seqbegin(&xtime_lock);
+-              
++
+               now = xtime;
+       } while (read_seqretry(&xtime_lock, seq));
+ 
+-      return now; 
++      return now;
+ }
+ 
+ EXPORT_SYMBOL(current_kernel_time);
+@@ -377,19 +376,7 @@ void do_gettimeofday (struct timeval *tv
+       tv->tv_sec = sec;
+       tv->tv_usec = usec;
+ 
+-      /*
+-       * Make sure xtime.tv_sec [returned by sys_time()] always
+-       * follows the gettimeofday() result precisely. This
+-       * condition is extremely unlikely, it can hit at most
+-       * once per second:
+-       */
+-      if (unlikely(xtime.tv_sec != tv->tv_sec)) {
+-              unsigned long flags;
+-
+-              write_seqlock_irqsave(&xtime_lock, flags);
+-              update_wall_time();
+-              write_sequnlock_irqrestore(&xtime_lock, flags);
+-      }
++      update_xtime_seconds(sec);
+ }
+ EXPORT_SYMBOL(do_gettimeofday);
+ 
+Index: linux/kernel/time/timekeeping.c
+===================================================================
+--- linux.orig/kernel/time/timekeeping.c
++++ linux/kernel/time/timekeeping.c
+@@ -45,13 +45,27 @@ EXPORT_SYMBOL(xtime_lock);
+  * the usual normalization.
+  */
+ struct timespec xtime __attribute__ ((aligned (16)));
+-struct timespec wall_to_monotonic __attribute__ ((aligned (16)));
+-
+ EXPORT_SYMBOL(xtime);
+ 
++struct timespec wall_to_monotonic __attribute__ ((aligned (16))) 
__read_mostly;
++
++unsigned long xtime_seconds __read_mostly;
++EXPORT_SYMBOL(xtime_seconds);
++
++/* pointer to current clocksource: */
++static struct clocksource *clock __read_mostly;
+ 
+-static struct clocksource *clock; /* pointer to current clocksource */
++/*
++ * Called when either xtime or any xtime-alike result back to
++ * user-space overflows the xtime_seconds field:
++ */
++void __update_xtime_seconds(unsigned long new_xtime_seconds)
++{
++      unsigned long old_xtime_seconds = xtime_seconds;
+ 
++      if ((long)(new_xtime_seconds - old_xtime_seconds) > 0)
++              cmpxchg(&xtime_seconds, old_xtime_seconds, new_xtime_seconds);
++}
+ 
+ #ifdef CONFIG_GENERIC_TIME
+ /**
+@@ -100,6 +113,8 @@ static inline void __get_realtime_clock_
+       } while (read_seqretry(&xtime_lock, seq));
+ 
+       timespec_add_ns(ts, nsecs);
++
++      update_xtime_seconds(ts->tv_sec);
+ }
+ 
+ /**
+@@ -256,6 +271,8 @@ void __init timekeeping_init(void)
+       clock->cycle_last = clocksource_read(clock);
+ 
+       xtime.tv_sec = sec;
++      update_xtime_seconds(sec);
++
+       xtime.tv_nsec = 0;
+       set_normalized_timespec(&wall_to_monotonic,
+               -xtime.tv_sec, -xtime.tv_nsec);
+@@ -290,6 +307,8 @@ static int timekeeping_resume(struct sys
+               unsigned long sleep_length = now - timekeeping_suspend_time;
+ 
+               xtime.tv_sec += sleep_length;
++              update_xtime_seconds(xtime.tv_sec);
++
+               wall_to_monotonic.tv_sec -= sleep_length;
+       }
+       /* re-base the last cycle value */
+@@ -464,6 +483,7 @@ void update_wall_time(void)
+                       clock->xtime_nsec -= (u64)NSEC_PER_SEC << clock->shift;
+                       xtime.tv_sec++;
+                       second_overflow();
++                      update_xtime_seconds(xtime.tv_sec);
+               }
+ 
+               /* interpolator bits */

linux-2.6-utrace-core.patch:
 Documentation/DocBook/Makefile    |    2 
 Documentation/DocBook/utrace.tmpl |   23 
 Documentation/utrace.txt          |  579 +++++++++
 include/linux/sched.h             |    5 
 include/linux/tracehook.h         |   85 +
 include/linux/utrace.h            |  544 +++++++++
 init/Kconfig                      |   18 
 kernel/Makefile                   |    1 
 kernel/utrace.c                   | 2263 ++++++++++++++++++++++++++++++++++++++
 9 files changed, 3502 insertions(+), 18 deletions(-)

Index: linux-2.6-utrace-core.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-utrace-core.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-utrace-core.patch 19 Jul 2007 17:46:36 -0000      1.3
+++ linux-2.6-utrace-core.patch 20 Jul 2007 18:47:39 -0000      1.4
@@ -19,23 +19,25 @@
 
 ---
 
- kernel/Makefile                   |    1 
- kernel/utrace.c                   | 2263 +++++++++++++++++++++++++++++++++++++
- Documentation/utrace.txt          |  579 +++++++++
  Documentation/DocBook/Makefile    |    2 
  Documentation/DocBook/utrace.tmpl |   23 
+ Documentation/utrace.txt          |  579 +++++++++
+ include/linux/sched.h             |    5 
  include/linux/tracehook.h         |   85 +
  include/linux/utrace.h            |  544 +++++++++
- include/linux/sched.h             |    5 
- init/Kconfig                      |   20 
- 9 files changed, 3504 insertions(+), 18 deletions(-)
+ init/Kconfig                      |   18 
+ kernel/Makefile                   |    1 
+ kernel/utrace.c                   | 2263 
++++++++++++++++++++++++++++++++++++++
+ 9 files changed, 3502 insertions(+), 18 deletions(-)
  create kernel/utrace.c
  create Documentation/utrace.txt
  create Documentation/DocBook/utrace.tmpl
  create include/linux/utrace.h
 
---- linux-2.6/kernel/Makefile
-+++ linux-2.6/kernel/Makefile
+Index: b/kernel/Makefile
+===================================================================
+--- a/kernel/Makefile
++++ b/kernel/Makefile
 @@ -51,6 +51,7 @@ obj-$(CONFIG_SYSCTL) += utsname_sysctl.o
  obj-$(CONFIG_UTS_NS) += utsname.o
  obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
@@ -44,8 +46,10 @@
  
  ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y)
  # According to Alan Modra <alan@xxxxxxxxxxxxxxxx>, the 
-fno-omit-frame-pointer is
---- linux-2.6/kernel/utrace.c
-+++ linux-2.6/kernel/utrace.c
+Index: b/kernel/utrace.c
+===================================================================
+--- /dev/null
++++ b/kernel/utrace.c
 @@ -0,0 +1,2263 @@
 +/*
 + * utrace infrastructure interface for debugging user processes
@@ -2310,8 +2314,10 @@
 +
 +      return unsafe;
 +}
---- linux-2.6/Documentation/utrace.txt
-+++ linux-2.6/Documentation/utrace.txt
+Index: b/Documentation/utrace.txt
+===================================================================
+--- /dev/null
++++ b/Documentation/utrace.txt
 @@ -0,0 +1,579 @@
 +DRAFT DRAFT DRAFT     WORK IN PROGRESS        DRAFT DRAFT DRAFT
 +
@@ -2892,8 +2898,10 @@
 +sure which event callbacks it will or won't see after utrace_set_flags
 +has returned.  By checking for errors, it can know whether to clean up
 +its data structures immediately or to let its callbacks do the work.
---- linux-2.6/Documentation/DocBook/Makefile
-+++ linux-2.6/Documentation/DocBook/Makefile
+Index: b/Documentation/DocBook/Makefile
+===================================================================
+--- a/Documentation/DocBook/Makefile
++++ b/Documentation/DocBook/Makefile
 @@ -9,7 +9,7 @@
  DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
            kernel- .xml kernel-locking.xml deviceiobook.xml \
@@ -2903,8 +2911,10 @@
            gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
            genericirq.xml
  
---- linux-2.6/Documentation/DocBook/utrace.tmpl
-+++ linux-2.6/Documentation/DocBook/utrace.tmpl
+Index: b/Documentation/DocBook/utrace.tmpl
+===================================================================
+--- /dev/null
++++ b/Documentation/DocBook/utrace.tmpl
 @@ -0,0 +1,23 @@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
@@ -2929,8 +2939,10 @@
 +    </chapter>
 +
 +</book>
---- linux-2.6/include/linux/tracehook.h
-+++ linux-2.6/include/linux/tracehook.h
+Index: b/include/linux/tracehook.h
+===================================================================
+--- a/include/linux/tracehook.h
++++ b/include/linux/tracehook.h
 @@ -28,6 +28,7 @@
  
  #include <linux/sched.h>
@@ -3206,8 +3218,10 @@
  }
  
  
---- linux-2.6/include/linux/utrace.h
-+++ linux-2.6/include/linux/utrace.h
+Index: b/include/linux/utrace.h
+===================================================================
+--- /dev/null
++++ b/include/linux/utrace.h
 @@ -0,0 +1,544 @@
 +/*
 + * utrace infrastructure interface for debugging user processes
@@ -3753,9 +3767,11 @@
 +#endif  /* CONFIG_UTRACE */
 +
 +#endif        /* linux/utrace.h */
---- linux-2.6/include/linux/sched.h
-+++ linux-2.6/include/linux/sched.h
-@@ -1029,6 +1029,11 @@ struct task_struct {
+Index: b/include/linux/sched.h
+===================================================================
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -962,6 +962,11 @@ struct task_struct {
        struct audit_context *audit_context;
        seccomp_t seccomp;
  
@@ -3767,9 +3783,11 @@
  /* Thread group tracking */
        u32 parent_exec_id;
        u32 self_exec_id;
---- linux-2.6/init/Kconfig
-+++ linux-2.6/init/Kconfig
-@@ -686,3 +686,21 @@ config STOP_MACHINE
+Index: b/init/Kconfig
+===================================================================
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -689,3 +689,21 @@ endmenu
  menu "Block layer"
  source "block/Kconfig"
  endmenu

linux-2.6-utrace-ptrace-compat.patch:
 arch/i386/kernel/ptrace.c       |   40 
 arch/powerpc/kernel/ptrace.c    |  250 ++++
 arch/powerpc/kernel/signal_32.c |   52 +
 arch/powerpc/lib/sstep.c        |    3 
 arch/x86_64/ia32/ia32entry.S    |    2 
 arch/x86_64/ia32/ptrace32.c     |   56 -
 arch/x86_64/kernel/ptrace.c     |   46 
 fs/proc/base.c                  |   40 
 include/asm-x86_64/ptrace-abi.h |    3 
 include/asm-x86_64/tracehook.h  |    1 
 include/linux/ptrace.h          |  221 +++-
 include/linux/sched.h           |    4 
 init/Kconfig                    |   15 
 kernel/Makefile                 |    3 
 kernel/exit.c                   |   13 
 kernel/fork.c                   |    2 
 kernel/ptrace.c                 | 2051 +++++++++++++++++++++++++++++++++++++---
 kernel/sys_ni.c                 |    4 
 18 files changed, 2632 insertions(+), 174 deletions(-)

Index: linux-2.6-utrace-ptrace-compat.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-utrace-ptrace-compat.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux-2.6-utrace-ptrace-compat.patch        19 Jul 2007 17:46:36 -0000      
1.4
+++ linux-2.6-utrace-ptrace-compat.patch        20 Jul 2007 18:47:39 -0000      
1.5
@@ -12,28 +12,30 @@
 
 ---
 
- fs/proc/base.c                  |   40 +
- arch/i386/kernel/ptrace.c       |   40 +
- arch/x86_64/ia32/ptrace32.c     |   56 +
- arch/x86_64/ia32/ia32entry.S    |    2 
- arch/x86_64/kernel/ptrace.c     |   46 +
- arch/powerpc/kernel/ptrace.c    |  250 +++++
+ arch/i386/kernel/ptrace.c       |   40 
+ arch/powerpc/kernel/ptrace.c    |  250 ++++
  arch/powerpc/kernel/signal_32.c |   52 +
  arch/powerpc/lib/sstep.c        |    3 
- kernel/fork.c                   |    2 
- kernel/exit.c                   |   13 
- kernel/ptrace.c                 | 2051 +++++++++++++++++++++++++++++++++++++--
- kernel/sys_ni.c                 |    4 
- kernel/Makefile                 |    3 
- include/linux/sched.h           |    4 
- include/linux/ptrace.h          |  221 +++-
- include/asm-x86_64/tracehook.h  |    1 
+ arch/x86_64/ia32/ia32entry.S    |    2 
+ arch/x86_64/ia32/ptrace32.c     |   56 -
+ arch/x86_64/kernel/ptrace.c     |   46 
+ fs/proc/base.c                  |   40 
  include/asm-x86_64/ptrace-abi.h |    3 
+ include/asm-x86_64/tracehook.h  |    1 
+ include/linux/ptrace.h          |  221 +++-
+ include/linux/sched.h           |    4 
  init/Kconfig                    |   15 
+ kernel/Makefile                 |    3 
+ kernel/exit.c                   |   13 
+ kernel/fork.c                   |    2 
+ kernel/ptrace.c                 | 2051 
+++++++++++++++++++++++++++++++++++++---
+ kernel/sys_ni.c                 |    4 
  18 files changed, 2632 insertions(+), 174 deletions(-)
 
---- linux-2.6/fs/proc/base.c
-+++ linux-2.6/fs/proc/base.c
+Index: b/fs/proc/base.c
+===================================================================
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
 @@ -151,6 +151,46 @@ static int get_nr_threads(struct task_st
        return count;
  }
@@ -81,8 +83,10 @@
  static int proc_cwd_link(struct inode *inode, struct dentry **dentry, struct 
vfsmount **mnt)
  {
        struct task_struct *task = get_proc_task(inode);
---- linux-2.6/arch/i386/kernel/ptrace.c
-+++ linux-2.6/arch/i386/kernel/ptrace.c
+Index: b/arch/i386/kernel/ptrace.c
+===================================================================
+--- a/arch/i386/kernel/ptrace.c
++++ b/arch/i386/kernel/ptrace.c
 @@ -735,6 +735,46 @@ const struct utrace_regset_view *utrace_
        return &utrace_i386_native;
  }
@@ -130,8 +134,10 @@
  
  void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int 
error_code)
  {
---- linux-2.6/arch/x86_64/ia32/ptrace32.c
-+++ linux-2.6/arch/x86_64/ia32/ptrace32.c
+Index: b/arch/x86_64/ia32/ptrace32.c
+===================================================================
+--- a/arch/x86_64/ia32/ptrace32.c
++++ b/arch/x86_64/ia32/ptrace32.c
 @@ -166,11 +166,6 @@ static int getreg32(struct task_struct *
  
  #undef R32
@@ -199,8 +205,10 @@
 +      return -ENOSYS;
 +}
 +#endif        /* CONFIG_PTRACE */
---- linux-2.6/arch/x86_64/ia32/ia32entry.S
-+++ linux-2.6/arch/x86_64/ia32/ia32entry.S
+Index: b/arch/x86_64/ia32/ia32entry.S
+===================================================================
+--- a/arch/x86_64/ia32/ia32entry.S
++++ b/arch/x86_64/ia32/ia32entry.S
 @@ -421,7 +421,7 @@ ia32_sys_call_table:
        .quad sys_setuid16
        .quad sys_getuid16
@@ -210,8 +218,10 @@
        .quad sys_alarm
        .quad sys_fstat /* (old)fstat */
        .quad sys_pause
---- linux-2.6/arch/x86_64/kernel/ptrace.c
-+++ linux-2.6/arch/x86_64/kernel/ptrace.c
+Index: b/arch/x86_64/kernel/ptrace.c
+===================================================================
+--- a/arch/x86_64/kernel/ptrace.c
++++ b/arch/x86_64/kernel/ptrace.c
 @@ -714,6 +714,52 @@ const struct utrace_regset_view *utrace_
  }
  
@@ -265,8 +275,10 @@
  asmlinkage void syscall_trace_enter(struct pt_regs *regs)
  {
        /* do the secure computing check first */
---- linux-2.6/arch/powerpc/kernel/ptrace.c
-+++ linux-2.6/arch/powerpc/kernel/ptrace.c
+Index: b/arch/powerpc/kernel/ptrace.c
+===================================================================
+--- a/arch/powerpc/kernel/ptrace.c
++++ b/arch/powerpc/kernel/ptrace.c
 @@ -456,13 +456,6 @@ static const struct utrace_regset_view u
        .name = "ppc", .e_machine = EM_PPC,
        .regsets = ppc32_regsets, .n = ARRAY_SIZE(ppc32_regsets)
@@ -531,8 +543,10 @@
  void do_syscall_trace_enter(struct pt_regs *regs)
  {
        secure_computing(regs->gpr[0]);
---- linux-2.6/arch/powerpc/kernel/signal_32.c
-+++ linux-2.6/arch/powerpc/kernel/signal_32.c
+Index: b/arch/powerpc/kernel/signal_32.c
+===================================================================
+--- a/arch/powerpc/kernel/signal_32.c
++++ b/arch/powerpc/kernel/signal_32.c
 @@ -631,6 +631,58 @@ int copy_siginfo_to_user32(struct compat
  
  #define copy_siginfo_to_user  copy_siginfo_to_user32
@@ -592,8 +606,10 @@
  /*
   * Note: it is necessary to treat pid and sig as unsigned ints, with the
   * corresponding cast to a signed int to insure that the proper conversion
---- linux-2.6/arch/powerpc/lib/sstep.c
-+++ linux-2.6/arch/powerpc/lib/sstep.c
+Index: b/arch/powerpc/lib/sstep.c
+===================================================================
+--- a/arch/powerpc/lib/sstep.c
++++ b/arch/powerpc/lib/sstep.c
 @@ -13,6 +13,9 @@
  #include <linux/ptrace.h>
  #include <asm/sstep.h>
@@ -604,8 +620,10 @@
  
  extern char system_call_common[];
  
---- linux-2.6/kernel/fork.c
-+++ linux-2.6/kernel/fork.c
+Index: b/kernel/fork.c
+===================================================================
+--- a/kernel/fork.c
++++ b/kernel/fork.c
 @@ -49,6 +49,7 @@
  #include <linux/delayacct.h>
  #include <linux/taskstats_kern.h>
@@ -622,8 +640,10 @@
  
        clear_tsk_thread_flag(p, TIF_SIGPENDING);
        init_sigpending(&p->pending);
---- linux-2.6/kernel/exit.c
-+++ linux-2.6/kernel/exit.c
+Index: b/kernel/exit.c
+===================================================================
+--- a/kernel/exit.c
++++ b/kernel/exit.c
 @@ -23,6 +23,7 @@
  #include <linux/nsproxy.h>
  #include <linux/tracehook.h>
@@ -632,7 +652,7 @@
  #include <linux/profile.h>
  #include <linux/signalfd.h>
  #include <linux/mount.h>
-@@ -849,6 +850,8 @@ fastcall NORET_TYPE void do_exit(long co
+@@ -858,6 +859,8 @@ fastcall NORET_TYPE void do_exit(long co
        tsk->flags |= PF_EXITING;
        spin_unlock_irq(&tsk->pi_lock);
  
@@ -641,7 +661,7 @@
        if (unlikely(in_atomic()))
                printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",
                                current->comm, current->pid,
-@@ -1473,9 +1476,15 @@ check_continued:
+@@ -1482,9 +1485,15 @@ check_continued:
                                break;
                        }
                }
@@ -659,8 +679,10 @@
                if (options & __WNOTHREAD)
                        break;
                tsk = next_thread(tsk);
---- linux-2.6/kernel/ptrace.c
-+++ linux-2.6/kernel/ptrace.c
+Index: b/kernel/ptrace.c
+===================================================================
+--- a/kernel/ptrace.c
++++ b/kernel/ptrace.c
 @@ -19,194 +19,2007 @@
  #include <linux/security.h>
  #include <linux/signal.h>
@@ -2788,8 +2810,10 @@
 +      .tracer_task = ptrace_tracer_task,
 +      .allow_access_process_vm = ptrace_allow_access_process_vm,
 +};
---- linux-2.6/kernel/sys_ni.c
-+++ linux-2.6/kernel/sys_ni.c
+Index: b/kernel/sys_ni.c
+===================================================================
+--- a/kernel/sys_ni.c
++++ b/kernel/sys_ni.c
 @@ -113,6 +113,10 @@ cond_syscall(sys_vm86);
  cond_syscall(compat_sys_ipc);
  cond_syscall(compat_sys_sysctl);
@@ -2801,8 +2825,10 @@
  /* arch-specific weak syscall entries */
  cond_syscall(sys_pciconfig_read);
  cond_syscall(sys_pciconfig_write);
---- linux-2.6/kernel/Makefile
-+++ linux-2.6/kernel/Makefile
+Index: b/kernel/Makefile
+===================================================================
+--- a/kernel/Makefile
++++ b/kernel/Makefile
 @@ -4,7 +4,7 @@
  
  obj-y     = sched.o fork.o exec_domain.o panic.o printk.o profile.o \
@@ -2820,9 +2846,11 @@
  
  ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y)
  # According to Alan Modra <alan@xxxxxxxxxxxxxxxx>, the 
-fno-omit-frame-pointer is
---- linux-2.6/include/linux/sched.h
-+++ linux-2.6/include/linux/sched.h
-@@ -1127,6 +1127,10 @@ struct task_struct {
+Index: b/include/linux/sched.h
+===================================================================
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1060,6 +1060,10 @@ struct task_struct {
        atomic_t fs_excl;       /* holding fs exclusive resources */
        struct rcu_head rcu;
  
@@ -2833,8 +2861,10 @@
        /*
         * cache last used pipe for splice
         */
---- linux-2.6/include/linux/ptrace.h
-+++ linux-2.6/include/linux/ptrace.h
+Index: b/include/linux/ptrace.h
+===================================================================
+--- a/include/linux/ptrace.h
++++ b/include/linux/ptrace.h
 @@ -49,50 +49,197 @@
  #include <asm/ptrace.h>
  
@@ -3070,8 +3100,10 @@
  #ifndef force_successful_syscall_return
  /*
   * System call handlers that, upon successful completion, need to return a
---- linux-2.6/include/asm-x86_64/tracehook.h
-+++ linux-2.6/include/asm-x86_64/tracehook.h
+Index: b/include/asm-x86_64/tracehook.h
+===================================================================
+--- a/include/asm-x86_64/tracehook.h
++++ b/include/asm-x86_64/tracehook.h
 @@ -15,6 +15,7 @@
  
  #include <linux/sched.h>
@@ -3080,8 +3112,10 @@
  
  /*
   * See linux/tracehook.h for the descriptions of what these need to do.
---- linux-2.6/include/asm-x86_64/ptrace-abi.h
-+++ linux-2.6/include/asm-x86_64/ptrace-abi.h
+Index: b/include/asm-x86_64/ptrace-abi.h
+===================================================================
+--- a/include/asm-x86_64/ptrace-abi.h
++++ b/include/asm-x86_64/ptrace-abi.h
 @@ -48,4 +48,7 @@
  
  #define PTRACE_ARCH_PRCTL       30    /* arch_prctl for child */
@@ -3090,8 +3124,10 @@
 +#define PTRACE_SYSEMU_SINGLESTEP  32
 +
  #endif
---- linux-2.6/init/Kconfig
-+++ linux-2.6/init/Kconfig
+Index: b/init/Kconfig
+===================================================================
+--- a/init/Kconfig
++++ b/init/Kconfig
 @@ -692,10 +692,21 @@ endmenu
  
  menu "Process debugging support"

linux-2.6-utrace-tracehook.patch:
 arch/alpha/kernel/asm-offsets.c     |    2 
 arch/alpha/kernel/entry.S           |    4 
 arch/arm/kernel/ptrace.c            |   17 -
 arch/arm26/kernel/ptrace.c          |   32 --
 arch/frv/kernel/ptrace.c            |   15 -
 arch/i386/kernel/entry.S            |    7 
 arch/i386/kernel/process.c          |    3 
 arch/i386/kernel/ptrace.c           |  104 +--------
 arch/i386/kernel/signal.c           |   37 +--
 arch/i386/kernel/vm86.c             |    7 
 arch/i386/math-emu/fpu_entry.c      |    6 
 arch/ia64/kernel/asm-offsets.c      |    2 
 arch/ia64/kernel/fsys.S             |   16 -
 arch/ia64/kernel/mca.c              |    2 
 arch/mips/kernel/ptrace.c           |   21 -
 arch/mips/kernel/sysirix.c          |    2 
 arch/powerpc/kernel/asm-offsets.c   |    2 
 arch/powerpc/kernel/process.c       |    5 
 arch/powerpc/kernel/ptrace-common.h |   16 -
 arch/powerpc/kernel/ptrace.c        |   76 +-----
 arch/powerpc/kernel/ptrace32.c      |   13 -
 arch/powerpc/kernel/signal_32.c     |    3 
 arch/powerpc/kernel/signal_64.c     |    3 
 arch/powerpc/kernel/sys_ppc32.c     |    5 
 arch/ppc/kernel/asm-offsets.c       |    2 
 arch/s390/kernel/compat_linux.c     |    3 
 arch/s390/kernel/process.c          |    3 
 arch/sparc64/kernel/binfmt_aout32.c |    2 
 arch/sparc64/kernel/process.c       |    3 
 arch/sparc64/kernel/sys_sparc32.c   |    3 
 arch/x86_64/ia32/ia32_aout.c        |    6 
 arch/x86_64/ia32/ia32_signal.c      |    7 
 arch/x86_64/ia32/ia32entry.S        |    4 
 arch/x86_64/ia32/ptrace32.c         |    2 
 arch/x86_64/ia32/sys_ia32.c         |    5 
 arch/x86_64/kernel/entry.S          |    8 
 arch/x86_64/kernel/process.c        |    5 
 arch/x86_64/kernel/ptrace.c         |   57 +---
 arch/x86_64/kernel/signal.c         |   28 +-
 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                     |   12 -
 fs/proc/base.c                      |   17 -
 include/asm-i386/signal.h           |    4 
 include/asm-i386/thread_info.h      |    7 
 include/asm-i386/tracehook.h        |   52 ++++
 include/asm-powerpc/tracehook.h     |   74 ++++++
 include/asm-x86_64/thread_info.h    |    3 
 include/asm-x86_64/tracehook.h      |   51 ++++
 include/linux/init_task.h           |    3 
 include/linux/ptrace.h              |   18 -
 include/linux/sched.h               |   16 -
 include/linux/tracehook.h           |  414 ++++++++++++++++++++++++++++++++++++
 kernel/exit.c                       |  252 ++++++---------------
 kernel/fork.c                       |   66 +----
 kernel/ptrace.c                     |  299 +-------------------------
 kernel/signal.c                     |  212 +++---------------
 kernel/sys.c                        |    2 
 kernel/timer.c                      |    6 
 kernel/tsacct.c                     |    2 
 mm/nommu.c                          |    4 
 security/selinux/hooks.c            |   54 ++--
 security/selinux/include/objsec.h   |    1 
 70 files changed, 942 insertions(+), 1216 deletions(-)

Index: linux-2.6-utrace-tracehook.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-utrace-tracehook.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-utrace-tracehook.patch    19 Jul 2007 17:46:36 -0000      1.3
+++ linux-2.6-utrace-tracehook.patch    20 Jul 2007 18:47:39 -0000      1.4
@@ -33,84 +33,86 @@
 
 ---
 
- fs/binfmt_flat.c                    |    3 
- fs/binfmt_som.c                     |    2 
- fs/proc/base.c                      |   17 +
- fs/proc/array.c                     |   12 +
- fs/binfmt_elf_fdpic.c               |    7 -
- fs/exec.c                           |   11 -
- fs/binfmt_elf.c                     |    6 -
- fs/binfmt_aout.c                    |    6 -
- security/selinux/hooks.c            |   54 +++--
- security/selinux/include/objsec.h   |    1 
- arch/s390/kernel/compat_linux.c     |    3 
- arch/s390/kernel/process.c          |    3 
+ arch/alpha/kernel/asm-offsets.c     |    2 
+ arch/alpha/kernel/entry.S           |    4 
+ arch/arm/kernel/ptrace.c            |   17 -
+ arch/arm26/kernel/ptrace.c          |   32 --
  arch/frv/kernel/ptrace.c            |   15 -
- arch/i386/math-emu/fpu_entry.c      |    6 -
- arch/i386/kernel/ptrace.c           |  104 ++-------
- arch/i386/kernel/signal.c           |   37 +--
+ arch/i386/kernel/entry.S            |    7 
  arch/i386/kernel/process.c          |    3 
- arch/i386/kernel/vm86.c             |    7 -
- arch/i386/kernel/entry.S            |    7 -
- arch/x86_64/ia32/sys_ia32.c         |    5 
- arch/x86_64/ia32/ptrace32.c         |    2 
- arch/x86_64/ia32/ia32_aout.c        |    6 -
- arch/x86_64/ia32/ia32_signal.c      |    7 -
- arch/x86_64/ia32/ia32entry.S        |    4 
- arch/x86_64/kernel/traps.c          |    8 -
- arch/x86_64/kernel/ptrace.c         |   57 ++---
- arch/x86_64/kernel/signal.c         |   28 +-
- arch/x86_64/kernel/process.c        |    5 
- arch/x86_64/kernel/entry.S          |    8 -
- arch/x86_64/mm/fault.c              |    4 
- arch/arm/kernel/ptrace.c            |   17 -
+ arch/i386/kernel/ptrace.c           |  104 +--------
+ arch/i386/kernel/signal.c           |   37 +--
+ arch/i386/kernel/vm86.c             |    7 
+ arch/i386/math-emu/fpu_entry.c      |    6 
+ arch/ia64/kernel/asm-offsets.c      |    2 
+ arch/ia64/kernel/fsys.S             |   16 -
+ arch/ia64/kernel/mca.c              |    2 
+ arch/mips/kernel/ptrace.c           |   21 -
  arch/mips/kernel/sysirix.c          |    2 
- arch/mips/kernel/ptrace.c           |   21 --
- arch/powerpc/kernel/sys_ppc32.c     |    5 
- arch/powerpc/kernel/ptrace-common.h |   16 -
- arch/powerpc/kernel/ptrace32.c      |   13 +
- arch/powerpc/kernel/ptrace.c        |   76 +-----
  arch/powerpc/kernel/asm-offsets.c   |    2 
- arch/powerpc/kernel/signal_64.c     |    3 
  arch/powerpc/kernel/process.c       |    5 
+ arch/powerpc/kernel/ptrace-common.h |   16 -
+ arch/powerpc/kernel/ptrace.c        |   76 +-----
+ arch/powerpc/kernel/ptrace32.c      |   13 -
  arch/powerpc/kernel/signal_32.c     |    3 
- arch/arm26/kernel/ptrace.c          |   32 +--
- arch/alpha/kernel/asm-offsets.c     |    2 
- arch/alpha/kernel/entry.S           |    4 
+ arch/powerpc/kernel/signal_64.c     |    3 
+ arch/powerpc/kernel/sys_ppc32.c     |    5 
+ arch/ppc/kernel/asm-offsets.c       |    2 
+ arch/s390/kernel/compat_linux.c     |    3 
+ arch/s390/kernel/process.c          |    3 
  arch/sparc64/kernel/binfmt_aout32.c |    2 
  arch/sparc64/kernel/process.c       |    3 
  arch/sparc64/kernel/sys_sparc32.c   |    3 
- arch/ppc/kernel/asm-offsets.c       |    2 
- arch/ia64/kernel/mca.c              |    2 
- arch/ia64/kernel/asm-offsets.c      |    2 
- arch/ia64/kernel/fsys.S             |   16 +
- kernel/exit.c                       |  244 +++++----------------
- kernel/ptrace.c                     |  299 +------------------------
- kernel/timer.c                      |    6 -
- kernel/signal.c                     |  212 ++++--------------
- kernel/tsacct.c                     |    2 
- kernel/sys.c                        |    2 
- kernel/fork.c                       |   66 ++----
- include/linux/ptrace.h              |   18 --
- include/linux/sched.h               |   16 -
- include/linux/init_task.h           |    3 
- include/linux/tracehook.h           |  414 +++++++++++++++++++++++++++++++++++
- include/asm-i386/tracehook.h        |   52 ++++
- include/asm-i386/thread_info.h      |    7 -
+ arch/x86_64/ia32/ia32_aout.c        |    6 
+ arch/x86_64/ia32/ia32_signal.c      |    7 
+ arch/x86_64/ia32/ia32entry.S        |    4 
+ arch/x86_64/ia32/ptrace32.c         |    2 
+ arch/x86_64/ia32/sys_ia32.c         |    5 
+ arch/x86_64/kernel/entry.S          |    8 
+ arch/x86_64/kernel/process.c        |    5 
+ arch/x86_64/kernel/ptrace.c         |   57 +---
+ arch/x86_64/kernel/signal.c         |   28 +-
+ 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                     |   12 -
+ fs/proc/base.c                      |   17 -
  include/asm-i386/signal.h           |    4 
+ include/asm-i386/thread_info.h      |    7 
+ include/asm-i386/tracehook.h        |   52 ++++
  include/asm-powerpc/tracehook.h     |   74 ++++++
- include/asm-x86_64/tracehook.h      |   51 ++++
  include/asm-x86_64/thread_info.h    |    3 
- drivers/connector/cn_proc.c         |    4 
+ include/asm-x86_64/tracehook.h      |   51 ++++
+ include/linux/init_task.h           |    3 
+ include/linux/ptrace.h              |   18 -
+ include/linux/sched.h               |   16 -
+ include/linux/tracehook.h           |  414 
++++++++++++++++++++++++++++++++++++
+ kernel/exit.c                       |  252 ++++++---------------
+ kernel/fork.c                       |   66 +----
+ kernel/ptrace.c                     |  299 +-------------------------
+ kernel/signal.c                     |  212 +++---------------
+ kernel/sys.c                        |    2 
+ kernel/timer.c                      |    6 
+ kernel/tsacct.c                     |    2 
  mm/nommu.c                          |    4 
- 70 files changed, 934 insertions(+), 1216 deletions(-)
+ security/selinux/hooks.c            |   54 ++--
+ security/selinux/include/objsec.h   |    1 
+ 70 files changed, 942 insertions(+), 1216 deletions(-)
  create include/linux/tracehook.h
  create include/asm-i386/tracehook.h
  create include/asm-powerpc/tracehook.h
  create include/asm-x86_64/tracehook.h
 
---- linux-2.6/fs/binfmt_flat.c
-+++ linux-2.6/fs/binfmt_flat.c
+Index: b/fs/binfmt_flat.c
+===================================================================
+--- a/fs/binfmt_flat.c
++++ b/fs/binfmt_flat.c
 @@ -914,9 +914,6 @@ static int load_flat_binary(struct linux
        
        start_thread(regs, start_addr, current->mm->start_stack);
@@ -121,8 +123,10 @@
        return 0;
  }
  
---- linux-2.6/fs/binfmt_som.c
-+++ linux-2.6/fs/binfmt_som.c
+Index: b/fs/binfmt_som.c
+===================================================================
+--- a/fs/binfmt_som.c
++++ b/fs/binfmt_som.c
 @@ -285,8 +285,6 @@ load_som_binary(struct linux_binprm * bp
        map_hpux_gateway_page(current,current->mm);
  
@@ -132,8 +136,10 @@
        return 0;
  
        /* error cleanup */
---- linux-2.6/fs/proc/base.c
-+++ linux-2.6/fs/proc/base.c
+Index: b/fs/proc/base.c
+===================================================================
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
 @@ -67,6 +67,7 @@
  #include <linux/mount.h>
  #include <linux/security.h>
@@ -186,8 +192,10 @@
                goto out;
  
        copied = -ENOMEM;
---- linux-2.6/fs/proc/array.c
-+++ linux-2.6/fs/proc/array.c
+Index: b/fs/proc/array.c
+===================================================================
+--- a/fs/proc/array.c
++++ b/fs/proc/array.c
 @@ -73,6 +73,7 @@
  #include <linux/file.h>
  #include <linux/times.h>
@@ -212,10 +220,10 @@
 +
        buffer += sprintf(buffer,
                "State:\t%s\n"
-               "Tgid:\t%d\n"
-@@ -173,8 +179,8 @@ static inline char * task_state(struct t
-               "Gid:\t%d\t%d\t%d\t%d\n",
+               "SleepAVG:\t%lu%%\n"
+@@ -175,8 +181,8 @@ static inline char * task_state(struct t
                get_task_state(p),
+               (p->sleep_avg/1024)*100/(1020000000/1024),
                p->tgid, p->pid,
 -              pid_alive(p) ? rcu_dereference(p->real_parent)->tgid : 0,
 -              pid_alive(p) && p->ptrace ? rcu_dereference(p->parent)->pid : 0,
@@ -224,7 +232,7 @@
                p->uid, p->euid, p->suid, p->fsuid,
                p->gid, p->egid, p->sgid, p->fsgid);
  
-@@ -418,7 +424,7 @@ static int do_task_stat(struct task_stru
+@@ -383,7 +389,7 @@ static int do_task_stat(struct task_stru
  
                sid = signal_session(sig);
                pgid = process_group(task);
@@ -233,8 +241,10 @@
  
                unlock_task_sighand(task, &flags);
        }
---- linux-2.6/fs/binfmt_elf_fdpic.c
-+++ linux-2.6/fs/binfmt_elf_fdpic.c
+Index: b/fs/binfmt_elf_fdpic.c
+===================================================================
+--- a/fs/binfmt_elf_fdpic.c
++++ b/fs/binfmt_elf_fdpic.c
 @@ -427,13 +427,6 @@ static int load_elf_fdpic_binary(struct 
        entryaddr = interp_params.entry_addr ?: exec_params.entry_addr;
        start_thread(regs, entryaddr, current->mm->start_stack);
@@ -249,8 +259,10 @@
        retval = 0;
  
  error:
---- linux-2.6/fs/exec.c
-+++ linux-2.6/fs/exec.c
+Index: b/fs/exec.c
+===================================================================
+--- a/fs/exec.c
++++ b/fs/exec.c
 @@ -42,7 +42,7 @@
  #include <linux/module.h>
  #include <linux/namei.h>
@@ -283,8 +295,10 @@
                                return retval;
                        }
                        read_lock(&binfmt_lock);
---- linux-2.6/fs/binfmt_elf.c
-+++ linux-2.6/fs/binfmt_elf.c
+Index: b/fs/binfmt_elf.c
+===================================================================
+--- a/fs/binfmt_elf.c
++++ b/fs/binfmt_elf.c
 @@ -1026,12 +1026,6 @@ static int load_elf_binary(struct linux_
  #endif
  
@@ -298,8 +312,10 @@
        retval = 0;
  out:
        kfree(loc);
---- linux-2.6/fs/binfmt_aout.c
-+++ linux-2.6/fs/binfmt_aout.c
+Index: b/fs/binfmt_aout.c
+===================================================================
+--- a/fs/binfmt_aout.c
++++ b/fs/binfmt_aout.c
 @@ -452,12 +452,6 @@ beyond_if:
        regs->gp = ex.a_gpvalue;
  #endif
@@ -313,8 +329,10 @@
        return 0;
  }
  
---- linux-2.6/security/selinux/hooks.c
-+++ linux-2.6/security/selinux/hooks.c
+Index: b/security/selinux/hooks.c
+===================================================================
+--- a/security/selinux/hooks.c
++++ b/security/selinux/hooks.c
 @@ -23,7 +23,7 @@
  #include <linux/module.h>
  #include <linux/init.h>
@@ -354,7 +372,7 @@
  }
  
  static int selinux_capget(struct task_struct *target, kernel_cap_t *effective,
-@@ -1851,12 +1845,24 @@ static void selinux_bprm_apply_creds(str
+@@ -1850,12 +1844,24 @@ static void selinux_bprm_apply_creds(str
                /* Check for ptracing, and update the task SID if ok.
                   Otherwise, leave SID unchanged and kill. */
                if (unsafe & (LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) {
@@ -385,7 +403,7 @@
                        }
                }
                tsec->sid = sid;
-@@ -2754,11 +2760,6 @@ static int selinux_task_alloc_security(s
+@@ -2749,11 +2755,6 @@ static int selinux_task_alloc_security(s
        tsec2->keycreate_sid = tsec1->keycreate_sid;
        tsec2->sockcreate_sid = tsec1->sockcreate_sid;
  
@@ -397,7 +415,7 @@
        return 0;
  }
  
-@@ -4540,6 +4541,7 @@ static int selinux_setprocattr(struct ta
+@@ -4535,6 +4536,7 @@ static int selinux_setprocattr(struct ta
                               char *name, void *value, size_t size)
  {
        struct task_security_struct *tsec;
@@ -405,7 +423,7 @@
        u32 sid = 0;
        int error;
        char *str = value;
-@@ -4628,18 +4630,24 @@ static int selinux_setprocattr(struct ta
+@@ -4623,18 +4625,24 @@ static int selinux_setprocattr(struct ta
                /* Check for ptracing, and update the task SID if ok.
                   Otherwise, leave SID unchanged and fail. */
                task_lock(p);
@@ -433,8 +451,10 @@
                        tsec->sid = sid;
                        task_unlock(p);
                }
---- linux-2.6/security/selinux/include/objsec.h
-+++ linux-2.6/security/selinux/include/objsec.h
+Index: b/security/selinux/include/objsec.h
+===================================================================
+--- a/security/selinux/include/objsec.h
++++ b/security/selinux/include/objsec.h
 @@ -35,7 +35,6 @@ struct task_security_struct {
        u32 create_sid;      /* fscreate SID */
        u32 keycreate_sid;   /* keycreate SID */
@@ -443,8 +463,10 @@
  };
  
  struct inode_security_struct {
---- linux-2.6/arch/s390/kernel/compat_linux.c
-+++ linux-2.6/arch/s390/kernel/compat_linux.c
+Index: b/arch/s390/kernel/compat_linux.c
+===================================================================
+--- a/arch/s390/kernel/compat_linux.c
++++ b/arch/s390/kernel/compat_linux.c
 @@ -513,9 +513,6 @@ asmlinkage long sys32_execve(void)
                result = rc;
                goto out_putname;
@@ -455,8 +477,10 @@
        current->thread.fp_regs.fpc=0;
        asm volatile("sfpc %0,0" : : "d" (0));
        result = regs->gprs[2];
---- linux-2.6/arch/s390/kernel/process.c
-+++ linux-2.6/arch/s390/kernel/process.c
+Index: b/arch/s390/kernel/process.c
+===================================================================
+--- a/arch/s390/kernel/process.c
++++ b/arch/s390/kernel/process.c
 @@ -321,9 +321,6 @@ asmlinkage long sys_vfork(void)
  
  asmlinkage void execve_tail(void)
@@ -467,8 +491,10 @@
        current->thread.fp_regs.fpc = 0;
        if (MACHINE_HAS_IEEE)
                asm volatile("sfpc %0,%0" : : "d" (0));
---- linux-2.6/arch/frv/kernel/ptrace.c
-+++ linux-2.6/arch/frv/kernel/ptrace.c
+Index: b/arch/frv/kernel/ptrace.c
+===================================================================
+--- a/arch/frv/kernel/ptrace.c
++++ b/arch/frv/kernel/ptrace.c
 @@ -699,24 +699,11 @@ asmlinkage void do_syscall_trace(int lea
        if (!test_thread_flag(TIF_SYSCALL_TRACE))
                return;
@@ -495,8 +521,10 @@
 -      }
 +      tracehook_report_syscall(regs, leaving);
  }
---- linux-2.6/arch/i386/math-emu/fpu_entry.c
-+++ linux-2.6/arch/i386/math-emu/fpu_entry.c
+Index: b/arch/i386/math-emu/fpu_entry.c
+===================================================================
+--- a/arch/i386/math-emu/fpu_entry.c
++++ b/arch/i386/math-emu/fpu_entry.c
 @@ -25,7 +25,6 @@
   
+---------------------------------------------------------------------------*/
  
@@ -517,8 +545,10 @@
  
    if ( !valid_prefix(&byte1, (u_char __user **)&FPU_EIP,
                     &addr_modes.override) )
---- linux-2.6/arch/i386/kernel/ptrace.c
-+++ linux-2.6/arch/i386/kernel/ptrace.c
+Index: b/arch/i386/kernel/ptrace.c
+===================================================================
+--- a/arch/i386/kernel/ptrace.c
++++ b/arch/i386/kernel/ptrace.c
 @@ -11,6 +11,7 @@
  #include <linux/smp.h>
  #include <linux/errno.h>
@@ -713,8 +743,10 @@
 -              audit_syscall_exit(AUDITSC_RESULT(regs->eax), regs->eax);
 -      return 1;
  }
---- linux-2.6/arch/i386/kernel/signal.c
-+++ linux-2.6/arch/i386/kernel/signal.c
+Index: b/arch/i386/kernel/signal.c
+===================================================================
+--- a/arch/i386/kernel/signal.c
++++ b/arch/i386/kernel/signal.c
 @@ -18,7 +18,7 @@
  #include <linux/stddef.h>
  #include <linux/personality.h>
@@ -791,8 +823,10 @@
        }
  
        return ret;
---- linux-2.6/arch/i386/kernel/process.c
-+++ linux-2.6/arch/i386/kernel/process.c
+Index: b/arch/i386/kernel/process.c
+===================================================================
+--- a/arch/i386/kernel/process.c
++++ b/arch/i386/kernel/process.c
 @@ -774,9 +774,6 @@ asmlinkage int sys_execve(struct pt_regs
                        (char __user * __user *) regs.edx,
                        &regs);
@@ -803,8 +837,10 @@
                /* Make sure we don't return using sysenter.. */
                set_thread_flag(TIF_IRET);
        }
---- linux-2.6/arch/i386/kernel/vm86.c
-+++ linux-2.6/arch/i386/kernel/vm86.c
+Index: b/arch/i386/kernel/vm86.c
+===================================================================
+--- a/arch/i386/kernel/vm86.c
++++ b/arch/i386/kernel/vm86.c
 @@ -556,13 +556,6 @@ int handle_vm86_trap(struct kernel_vm86_
        }
        if (trapno !=1)
@@ -819,8 +855,10 @@
        send_sig(SIGTRAP, current, 1);
        current->thread.trap_no = trapno;
        current->thread.error_code = error_code;
---- linux-2.6/arch/i386/kernel/entry.S
-+++ linux-2.6/arch/i386/kernel/entry.S
+Index: b/arch/i386/kernel/entry.S
+===================================================================
+--- a/arch/i386/kernel/entry.S
++++ b/arch/i386/kernel/entry.S
 @@ -332,7 +332,7 @@ sysenter_past_esp:
        GET_THREAD_INFO(%ebp)
  
@@ -849,8 +887,10 @@
        movl PT_ORIG_EAX(%esp), %eax
        cmpl $(nr_syscalls), %eax
        jnae syscall_call
---- linux-2.6/arch/x86_64/ia32/sys_ia32.c
-+++ linux-2.6/arch/x86_64/ia32/sys_ia32.c
+Index: b/arch/x86_64/ia32/sys_ia32.c
+===================================================================
+--- a/arch/x86_64/ia32/sys_ia32.c
++++ b/arch/x86_64/ia32/sys_ia32.c
 @@ -800,11 +800,6 @@ asmlinkage long sys32_execve(char __user
        if (IS_ERR(filename))
                return error;
@@ -863,8 +903,10 @@
        putname(filename);
        return error;
  }
---- linux-2.6/arch/x86_64/ia32/ptrace32.c
-+++ linux-2.6/arch/x86_64/ia32/ptrace32.c
+Index: b/arch/x86_64/ia32/ptrace32.c
+===================================================================
+--- a/arch/x86_64/ia32/ptrace32.c
++++ b/arch/x86_64/ia32/ptrace32.c
 @@ -388,9 +388,11 @@ asmlinkage long sys32_ptrace(long reques
                break;
        }
@@ -877,8 +919,10 @@
  
        default:
                BUG();
---- linux-2.6/arch/x86_64/ia32/ia32_aout.c
-+++ linux-2.6/arch/x86_64/ia32/ia32_aout.c
+Index: b/arch/x86_64/ia32/ia32_aout.c
+===================================================================
+--- a/arch/x86_64/ia32/ia32_aout.c
++++ b/arch/x86_64/ia32/ia32_aout.c
 @@ -423,12 +423,6 @@ beyond_if:
        (regs)->cs = __USER32_CS;
        (regs)->ss = __USER32_DS;
@@ -892,8 +936,10 @@
        return 0;
  }
  
---- linux-2.6/arch/x86_64/ia32/ia32_signal.c
-+++ linux-2.6/arch/x86_64/ia32/ia32_signal.c
+Index: b/arch/x86_64/ia32/ia32_signal.c
+===================================================================
+--- a/arch/x86_64/ia32/ia32_signal.c
++++ b/arch/x86_64/ia32/ia32_signal.c
 @@ -492,11 +492,7 @@ int ia32_setup_frame(int sig, struct k_s
  
        regs->cs = __USER32_CS; 
@@ -916,8 +962,10 @@
  
  #if DEBUG_SIG
        printk("SIG deliver (%s:%d): sp=%p pc=%lx ra=%u\n",
---- linux-2.6/arch/x86_64/ia32/ia32entry.S
-+++ linux-2.6/arch/x86_64/ia32/ia32entry.S
+Index: b/arch/x86_64/ia32/ia32entry.S
+===================================================================
+--- a/arch/x86_64/ia32/ia32entry.S
++++ b/arch/x86_64/ia32/ia32entry.S
 @@ -321,7 +321,7 @@ ENTRY(ia32_syscall)
        jnz ia32_tracesys
  ia32_do_syscall:      
@@ -936,8 +984,10 @@
        movq %rsp,%rdi        /* &pt_regs -> arg1 */
        call syscall_trace_enter
        LOAD_ARGS ARGOFFSET  /* reload args from stack in case ptrace changed 
it */
---- linux-2.6/arch/x86_64/kernel/traps.c
-+++ linux-2.6/arch/x86_64/kernel/traps.c
+Index: b/arch/x86_64/kernel/traps.c
+===================================================================
+--- a/arch/x86_64/kernel/traps.c
++++ b/arch/x86_64/kernel/traps.c
 @@ -863,14 +863,6 @@ asmlinkage void __kprobes do_debug(struc
                 */
                  if (!user_mode(regs))
@@ -953,8 +1003,10 @@
        }
  
        /* Ok, finally something we can handle */
---- linux-2.6/arch/x86_64/kernel/ptrace.c
-+++ linux-2.6/arch/x86_64/kernel/ptrace.c
+Index: b/arch/x86_64/kernel/ptrace.c
+===================================================================
+--- a/arch/x86_64/kernel/ptrace.c
++++ b/arch/x86_64/kernel/ptrace.c
 @@ -12,6 +12,7 @@
  #include <linux/mm.h>
  #include <linux/smp.h>
@@ -1087,8 +1139,10 @@
 +              tracehook_report_syscall_step(regs);
 +      }
  }
---- linux-2.6/arch/x86_64/kernel/signal.c
-+++ linux-2.6/arch/x86_64/kernel/signal.c
+Index: b/arch/x86_64/kernel/signal.c
+===================================================================
+--- a/arch/x86_64/kernel/signal.c
++++ b/arch/x86_64/kernel/signal.c
 @@ -16,7 +16,7 @@
  #include <linux/signal.h>
  #include <linux/errno.h>
@@ -1146,8 +1200,10 @@
        }
  
        return ret;
---- linux-2.6/arch/x86_64/kernel/process.c
-+++ linux-2.6/arch/x86_64/kernel/process.c
+Index: b/arch/x86_64/kernel/process.c
+===================================================================
+--- a/arch/x86_64/kernel/process.c
++++ b/arch/x86_64/kernel/process.c
 @@ -688,11 +688,6 @@ long sys_execve(char __user *name, char 
        if (IS_ERR(filename)) 
                return error;
@@ -1160,8 +1216,10 @@
        putname(filename);
        return error;
  }
---- linux-2.6/arch/x86_64/kernel/entry.S
-+++ linux-2.6/arch/x86_64/kernel/entry.S
+Index: b/arch/x86_64/kernel/entry.S
+===================================================================
+--- a/arch/x86_64/kernel/entry.S
++++ b/arch/x86_64/kernel/entry.S
 @@ -305,19 +305,17 @@ badsys:
        /* Do syscall tracing */
  tracesys:                      
@@ -1185,8 +1243,10 @@
        /* Use IRET because user could have changed frame */
                
  /* 
---- linux-2.6/arch/x86_64/mm/fault.c
-+++ linux-2.6/arch/x86_64/mm/fault.c
+Index: b/arch/x86_64/mm/fault.c
+===================================================================
+--- a/arch/x86_64/mm/fault.c
++++ b/arch/x86_64/mm/fault.c
 @@ -11,7 +11,7 @@
  #include <linux/errno.h>
  #include <linux/string.h>
@@ -1205,8 +1265,10 @@
                return 0;
        return (tsk->sighand->action[sig-1].sa.sa_handler == SIG_IGN) ||
                (tsk->sighand->action[sig-1].sa.sa_handler == SIG_DFL);
---- linux-2.6/arch/arm/kernel/ptrace.c
-+++ linux-2.6/arch/arm/kernel/ptrace.c
+Index: b/arch/arm/kernel/ptrace.c
+===================================================================
+--- a/arch/arm/kernel/ptrace.c
++++ b/arch/arm/kernel/ptrace.c
 @@ -806,8 +806,6 @@ asmlinkage int syscall_trace(int why, st
  
        if (!test_thread_flag(TIF_SYSCALL_TRACE))
@@ -1238,8 +1300,10 @@
  
        return current_thread_info()->syscall;
  }
---- linux-2.6/arch/mips/kernel/sysirix.c
-+++ linux-2.6/arch/mips/kernel/sysirix.c
+Index: b/arch/mips/kernel/sysirix.c
+===================================================================
+--- a/arch/mips/kernel/sysirix.c
++++ b/arch/mips/kernel/sysirix.c
 @@ -582,7 +582,7 @@ out:
  
  asmlinkage int irix_getpid(struct pt_regs *regs)
@@ -1249,8 +1313,10 @@
        return current->pid;
  }
  
---- linux-2.6/arch/mips/kernel/ptrace.c
-+++ linux-2.6/arch/mips/kernel/ptrace.c
+Index: b/arch/mips/kernel/ptrace.c
+===================================================================
+--- a/arch/mips/kernel/ptrace.c
++++ b/arch/mips/kernel/ptrace.c
 @@ -486,26 +486,9 @@ asmlinkage void do_syscall_trace(struct 
                audit_syscall_exit(AUDITSC_RESULT(regs->regs[2]),
                                   regs->regs[2]);
@@ -1280,8 +1346,10 @@
        if (unlikely(current->audit_context) && !entryexit)
                audit_syscall_entry(audit_arch(), regs->regs[2],
                                    regs->regs[4], regs->regs[5],
---- linux-2.6/arch/powerpc/kernel/sys_ppc32.c
-+++ linux-2.6/arch/powerpc/kernel/sys_ppc32.c
+Index: b/arch/powerpc/kernel/sys_ppc32.c
+===================================================================
+--- a/arch/powerpc/kernel/sys_ppc32.c
++++ b/arch/powerpc/kernel/sys_ppc32.c
 @@ -368,11 +368,6 @@ long compat_sys_execve(unsigned long a0,
  
        error = compat_do_execve(filename, compat_ptr(a1), compat_ptr(a2), 
regs);
@@ -1294,8 +1362,10 @@
        putname(filename);
  
  out:
---- linux-2.6/arch/powerpc/kernel/ptrace-common.h
-+++ linux-2.6/arch/powerpc/kernel/ptrace-common.h
+Index: b/arch/powerpc/kernel/ptrace-common.h
+===================================================================
+--- a/arch/powerpc/kernel/ptrace-common.h
++++ b/arch/powerpc/kernel/ptrace-common.h
 @@ -54,22 +54,6 @@ static inline int put_reg(struct task_st
        return -EIO;
  }
@@ -1319,8 +1389,10 @@
  #ifdef CONFIG_ALTIVEC
  /*
   * Get/set all the altivec registers vr0..vr31, vscr, vrsave, in one go.
---- linux-2.6/arch/powerpc/kernel/ptrace32.c
-+++ linux-2.6/arch/powerpc/kernel/ptrace32.c
+Index: b/arch/powerpc/kernel/ptrace32.c
+===================================================================
+--- a/arch/powerpc/kernel/ptrace32.c
++++ b/arch/powerpc/kernel/ptrace32.c
 @@ -24,6 +24,7 @@
  #include <linux/smp_lock.h>
  #include <linux/errno.h>
@@ -1390,8 +1462,10 @@
  
        default:
                ret = ptrace_request(child, request, addr, data);
---- linux-2.6/arch/powerpc/kernel/ptrace.c
-+++ linux-2.6/arch/powerpc/kernel/ptrace.c
+Index: b/arch/powerpc/kernel/ptrace.c
+===================================================================
+--- a/arch/powerpc/kernel/ptrace.c
++++ b/arch/powerpc/kernel/ptrace.c
 @@ -21,6 +21,7 @@
  #include <linux/smp.h>
  #include <linux/errno.h>
@@ -1533,8 +1607,10 @@
 +              tracehook_report_syscall_step(regs);
 +      }
  }
---- linux-2.6/arch/powerpc/kernel/asm-offsets.c
-+++ linux-2.6/arch/powerpc/kernel/asm-offsets.c
+Index: b/arch/powerpc/kernel/asm-offsets.c
+===================================================================
+--- a/arch/powerpc/kernel/asm-offsets.c
++++ b/arch/powerpc/kernel/asm-offsets.c
 @@ -59,7 +59,6 @@ int main(void)
        DEFINE(AUDITCONTEXT, offsetof(struct task_struct, audit_context));
  #else
@@ -1551,8 +1627,10 @@
  #endif
  #ifdef CONFIG_SPE
        DEFINE(THREAD_EVR0, offsetof(struct thread_struct, evr[0]));
---- linux-2.6/arch/powerpc/kernel/signal_64.c
-+++ linux-2.6/arch/powerpc/kernel/signal_64.c
+Index: b/arch/powerpc/kernel/signal_64.c
+===================================================================
+--- a/arch/powerpc/kernel/signal_64.c
++++ b/arch/powerpc/kernel/signal_64.c
 @@ -23,6 +23,7 @@
  #include <linux/stddef.h>
  #include <linux/elf.h>
@@ -1570,8 +1648,10 @@
        }
  
        return ret;
---- linux-2.6/arch/powerpc/kernel/process.c
-+++ linux-2.6/arch/powerpc/kernel/process.c
+Index: b/arch/powerpc/kernel/process.c
+===================================================================
+--- a/arch/powerpc/kernel/process.c
++++ b/arch/powerpc/kernel/process.c
 @@ -809,11 +809,6 @@ int sys_execve(unsigned long a0, unsigne
        flush_spe_to_thread(current);
        error = do_execve(filename, (char __user * __user *) a1,
@@ -1584,8 +1664,10 @@
        putname(filename);
  out:
        return error;
---- linux-2.6/arch/powerpc/kernel/signal_32.c
-+++ linux-2.6/arch/powerpc/kernel/signal_32.c
+Index: b/arch/powerpc/kernel/signal_32.c
+===================================================================
+--- a/arch/powerpc/kernel/signal_32.c
++++ b/arch/powerpc/kernel/signal_32.c
 @@ -24,6 +24,7 @@
  #include <linux/signal.h>
  #include <linux/errno.h>
@@ -1603,8 +1685,10 @@
        }
  
        return ret;
---- linux-2.6/arch/arm26/kernel/ptrace.c
-+++ linux-2.6/arch/arm26/kernel/ptrace.c
+Index: b/arch/arm26/kernel/ptrace.c
+===================================================================
+--- a/arch/arm26/kernel/ptrace.c
++++ b/arch/arm26/kernel/ptrace.c
 @@ -652,30 +652,16 @@ asmlinkage void syscall_trace(int why, s
  {
        unsigned long ip;
@@ -1645,8 +1729,10 @@
        }
 -      regs->ARM_ip = ip;
  }
---- linux-2.6/arch/alpha/kernel/asm-offsets.c
-+++ linux-2.6/arch/alpha/kernel/asm-offsets.c
+Index: b/arch/alpha/kernel/asm-offsets.c
+===================================================================
+--- a/arch/alpha/kernel/asm-offsets.c
++++ b/arch/alpha/kernel/asm-offsets.c
 @@ -27,7 +27,7 @@ void foo(void)
          DEFINE(TASK_EUID, offsetof(struct task_struct, euid));
          DEFINE(TASK_GID, offsetof(struct task_struct, gid));
@@ -1656,8 +1742,10 @@
          DEFINE(TASK_GROUP_LEADER, offsetof(struct task_struct, group_leader));
          DEFINE(TASK_TGID, offsetof(struct task_struct, tgid));
          BLANK();
---- linux-2.6/arch/alpha/kernel/entry.S
-+++ linux-2.6/arch/alpha/kernel/entry.S
+Index: b/arch/alpha/kernel/entry.S
+===================================================================
+--- a/arch/alpha/kernel/entry.S
++++ b/arch/alpha/kernel/entry.S
 @@ -878,14 +878,14 @@ sys_getxpid:
        /* See linux/kernel/timer.c sys_getppid for discussion
           about this loop.  */
@@ -1675,8 +1763,10 @@
        cmpeq   $4, $5, $5
        beq     $5, 1b
  #endif
---- linux-2.6/arch/sparc64/kernel/binfmt_aout32.c
-+++ linux-2.6/arch/sparc64/kernel/binfmt_aout32.c
+Index: b/arch/sparc64/kernel/binfmt_aout32.c
+===================================================================
+--- a/arch/sparc64/kernel/binfmt_aout32.c
++++ b/arch/sparc64/kernel/binfmt_aout32.c
 @@ -335,8 +335,6 @@ beyond_if:
        tsb_context_switch(current->mm);
  
@@ -1686,8 +1776,10 @@
        return 0;
  }
  
---- linux-2.6/arch/sparc64/kernel/process.c
-+++ linux-2.6/arch/sparc64/kernel/process.c
+Index: b/arch/sparc64/kernel/process.c
+===================================================================
+--- a/arch/sparc64/kernel/process.c
++++ b/arch/sparc64/kernel/process.c
 @@ -819,9 +819,6 @@ asmlinkage int sparc_execve(struct pt_re
                current_thread_info()->xfsr[0] = 0;
                current_thread_info()->fpsaved[0] = 0;
@@ -1698,8 +1790,10 @@
        }
  out:
        return error;
---- linux-2.6/arch/sparc64/kernel/sys_sparc32.c
-+++ linux-2.6/arch/sparc64/kernel/sys_sparc32.c
+Index: b/arch/sparc64/kernel/sys_sparc32.c
+===================================================================
+--- a/arch/sparc64/kernel/sys_sparc32.c
++++ b/arch/sparc64/kernel/sys_sparc32.c
 @@ -682,9 +682,6 @@ asmlinkage long sparc32_execve(struct pt
                current_thread_info()->xfsr[0] = 0;
                current_thread_info()->fpsaved[0] = 0;
@@ -1710,8 +1804,10 @@
        }
  out:
        return error;
---- linux-2.6/arch/ppc/kernel/asm-offsets.c
-+++ linux-2.6/arch/ppc/kernel/asm-offsets.c
+Index: b/arch/ppc/kernel/asm-offsets.c
+===================================================================
+--- a/arch/ppc/kernel/asm-offsets.c
++++ b/arch/ppc/kernel/asm-offsets.c
 @@ -37,7 +37,6 @@ main(void)
        DEFINE(THREAD, offsetof(struct task_struct, thread));
        DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
@@ -1728,9 +1824,11 @@
  #endif
  #ifdef CONFIG_ALTIVEC
        DEFINE(THREAD_VR0, offsetof(struct thread_struct, vr[0]));
---- linux-2.6/arch/ia64/kernel/mca.c
-+++ linux-2.6/arch/ia64/kernel/mca.c
-@@ -1744,7 +1744,7 @@ format_mca_init_stack(void *mca_data, un
+Index: b/arch/ia64/kernel/mca.c
+===================================================================
+--- a/arch/ia64/kernel/mca.c
++++ b/arch/ia64/kernel/mca.c
+@@ -1698,7 +1698,7 @@ format_mca_init_stack(void *mca_data, un
        p->state = TASK_UNINTERRUPTIBLE;
        cpu_set(cpu, p->cpus_allowed);
        INIT_LIST_HEAD(&p->tasks);
@@ -1739,8 +1837,10 @@
        INIT_LIST_HEAD(&p->children);
        INIT_LIST_HEAD(&p->sibling);
        strncpy(p->comm, type, sizeof(p->comm)-1);
---- linux-2.6/arch/ia64/kernel/asm-offsets.c
-+++ linux-2.6/arch/ia64/kernel/asm-offsets.c
+Index: b/arch/ia64/kernel/asm-offsets.c
+===================================================================
+--- a/arch/ia64/kernel/asm-offsets.c
++++ b/arch/ia64/kernel/asm-offsets.c
 @@ -45,7 +45,7 @@ void foo(void)
        DEFINE(IA64_TASK_GROUP_LEADER_OFFSET, offsetof (struct task_struct, 
group_leader));
        DEFINE(IA64_TASK_PENDING_OFFSET,offsetof (struct task_struct, pending));
@@ -1750,8 +1850,10 @@
        DEFINE(IA64_TASK_SIGHAND_OFFSET,offsetof (struct task_struct, sighand));
        DEFINE(IA64_TASK_SIGNAL_OFFSET,offsetof (struct task_struct, signal));
        DEFINE(IA64_TASK_TGID_OFFSET, offsetof (struct task_struct, tgid));
---- linux-2.6/arch/ia64/kernel/fsys.S
-+++ linux-2.6/arch/ia64/kernel/fsys.S
+Index: b/arch/ia64/kernel/fsys.S
+===================================================================
+--- a/arch/ia64/kernel/fsys.S
++++ b/arch/ia64/kernel/fsys.S
 @@ -85,29 +85,29 @@ ENTRY(fsys_getppid)
        ;;
  
@@ -1790,8 +1892,10 @@
        mov r19=0                       // i must not leak kernel bits...
  (p6)  br.cond.spnt.few 1b                     // yes -> redo the read of tgid 
and the check
        ;;
---- linux-2.6/kernel/exit.c
-+++ linux-2.6/kernel/exit.c
+Index: b/kernel/exit.c
+===================================================================
+--- a/kernel/exit.c
++++ b/kernel/exit.c
 @@ -21,8 +21,8 @@
  #include <linux/file.h>
  #include <linux/binfmts.h>
@@ -1833,7 +1937,22 @@
                /*
                 * If we were the last child thread and the leader has
                 * exited already, and the leader's parent ignores SIGCHLD,
-@@ -190,6 +195,13 @@ repeat:
+@@ -180,6 +185,14 @@ repeat:
+                * that case.
+                */
+               zap_leader = (leader->exit_signal == -1);
++              if (zap_leader) {
++                      /*
++                       * Preserve the invariant that release_task()
++                       * can only be called on a task in EXIT_DEAD.
++                       */
++                      zap_leader = xchg(&leader->exit_state, EXIT_DEAD);
++                      BUG_ON(zap_leader != EXIT_ZOMBIE);
++              }
+       }
+ 
+       sched_exit(p);
+@@ -191,6 +204,13 @@ repeat:
        p = leader;
        if (unlikely(zap_leader))
                goto repeat;
@@ -1847,7 +1966,7 @@
  }
  
  /*
-@@ -229,10 +241,10 @@ static int will_become_orphaned_pgrp(str
+@@ -230,10 +250,10 @@ static int will_become_orphaned_pgrp(str
        do_each_pid_task(pgrp, PIDTYPE_PGID, p) {
                if (p == ignored_task
                                || p->exit_state
@@ -1861,7 +1980,7 @@
                        ret = 0;
                        break;
                }
-@@ -281,10 +293,9 @@ static void reparent_to_kthreadd(void)
+@@ -282,10 +302,9 @@ static void reparent_to_kthreadd(void)
  {
        write_lock_irq(&tasklist_lock);
  
@@ -1873,7 +1992,7 @@
        add_parent(current);
  
        /* Set the exit signal to SIGCHLD so we signal init on exit */
-@@ -600,45 +611,23 @@ choose_new_parent(struct task_struct *p,
+@@ -601,45 +620,23 @@ choose_new_parent(struct task_struct *p,
         * the parent is not a zombie.
         */
        BUG_ON(p == reaper || reaper->exit_state);
@@ -1923,7 +2042,7 @@
                return;
  
        /* We don't want people slaying init.  */
-@@ -648,7 +637,8 @@ reparent_thread(struct task_struct *p, s
+@@ -649,7 +646,8 @@ reparent_thread(struct task_struct *p, s
        /* If we'd notified the old parent about this child's death,
         * also notify the new parent.
         */
@@ -1933,7 +2052,7 @@
            p->exit_signal != -1 && thread_group_empty(p))
                do_notify_parent(p, p->exit_signal);
  
-@@ -678,7 +668,7 @@ reparent_thread(struct task_struct *p, s
+@@ -679,7 +677,7 @@ reparent_thread(struct task_struct *p, s
   * space.
   */
  static void
@@ -1942,7 +2061,7 @@
  {
        struct task_struct *p, *reaper = father;
        struct list_head *_p, *_n;
-@@ -691,48 +681,10 @@ forget_original_parent(struct task_struc
+@@ -692,48 +690,10 @@ forget_original_parent(struct task_struc
                }
        } while (reaper->exit_state);
  
@@ -1992,7 +2111,7 @@
        }
  }
  
-@@ -744,8 +696,9 @@ static void exit_notify(struct task_stru
+@@ -745,8 +705,9 @@ static void exit_notify(struct task_stru
  {
        int state;
        struct task_struct *t;
@@ -2003,7 +2122,7 @@
  
        if (signal_pending(tsk) && !(tsk->signal->flags & SIGNAL_GROUP_EXIT)
            && !thread_group_empty(tsk)) {
-@@ -778,10 +731,8 @@ static void exit_notify(struct task_stru
+@@ -779,10 +740,8 @@ static void exit_notify(struct task_stru
         *      jobs, send them a SIGHUP and then a SIGCONT.  (POSIX 3.2.2.2)
         */
  
@@ -2015,7 +2134,7 @@
  
        /*
         * Check to see if any process groups have become orphaned
-@@ -793,7 +744,7 @@ static void exit_notify(struct task_stru
+@@ -794,7 +753,7 @@ static void exit_notify(struct task_stru
         * is about to become orphaned.
         */
         
@@ -2024,7 +2143,7 @@
        
        pgrp = task_pgrp(tsk);
        if ((task_pgrp(t) != pgrp) &&
-@@ -826,32 +777,18 @@ static void exit_notify(struct task_stru
+@@ -827,32 +786,18 @@ static void exit_notify(struct task_stru
            && !capable(CAP_KILL))
                tsk->exit_signal = SIGCHLD;
  
@@ -2062,7 +2181,7 @@
  
        /* If the process is dead, release it - nobody will wait for it */
        if (state == EXIT_DEAD)
-@@ -879,10 +816,7 @@ fastcall NORET_TYPE void do_exit(long co
+@@ -880,10 +825,7 @@ fastcall NORET_TYPE void do_exit(long co
        }
  
  
@@ -2074,7 +2193,7 @@
  
        /*
         * We're taking recursive faults here in do_exit. Safest is to just
-@@ -1076,10 +1010,9 @@ static int eligible_child(pid_t pid, int
+@@ -1077,10 +1019,9 @@ static int eligible_child(pid_t pid, int
        }
  
        /*
@@ -2087,7 +2206,7 @@
                return 0;
  
        /* Wait for all children (clone and not) if __WALL is set;
-@@ -1151,7 +1084,7 @@ static int wait_task_zombie(struct task_
+@@ -1152,7 +1093,7 @@ static int wait_task_zombie(struct task_
  
                if (unlikely(p->exit_state != EXIT_ZOMBIE))
                        return 0;
@@ -2096,7 +2215,7 @@
                        return 0;
                get_task_struct(p);
                read_unlock(&tasklist_lock);
-@@ -1175,15 +1108,9 @@ static int wait_task_zombie(struct task_
+@@ -1176,15 +1117,9 @@ static int wait_task_zombie(struct task_
                BUG_ON(state != EXIT_DEAD);
                return 0;
        }
@@ -2114,7 +2233,7 @@
                struct signal_struct *psig;
                struct signal_struct *sig;
  
-@@ -1271,28 +1198,8 @@ static int wait_task_zombie(struct task_
+@@ -1272,28 +1207,8 @@ static int wait_task_zombie(struct task_
                return retval;
        }
        retval = p->pid;
@@ -2145,7 +2264,7 @@
        BUG_ON(!retval);
        return retval;
  }
-@@ -1311,7 +1218,7 @@ static int wait_task_stopped(struct task
+@@ -1312,7 +1227,7 @@ static int wait_task_stopped(struct task
  
        if (!p->exit_code)
                return 0;
@@ -2154,7 +2273,7 @@
            p->signal && p->signal->group_stop_count > 0)
                /*
                 * A group stop is in progress and this is the group leader.
-@@ -1332,14 +1239,13 @@ static int wait_task_stopped(struct task
+@@ -1333,14 +1248,13 @@ static int wait_task_stopped(struct task
        if (unlikely(noreap)) {
                pid_t pid = p->pid;
                uid_t uid = p->uid;
@@ -2171,7 +2290,7 @@
                                           infop, ru);
        }
  
-@@ -1395,9 +1301,7 @@ bail_ref:
+@@ -1396,9 +1310,7 @@ bail_ref:
        if (!retval && infop)
                retval = put_user(0, &infop->si_errno);
        if (!retval && infop)
@@ -2182,7 +2301,7 @@
        if (!retval && infop)
                retval = put_user(exit_code, &infop->si_status);
        if (!retval && infop)
-@@ -1465,22 +1369,6 @@ static int wait_task_continued(struct ta
+@@ -1466,22 +1378,6 @@ static int wait_task_continued(struct ta
  }
  
  
@@ -2205,7 +2324,7 @@
  static long do_wait(pid_t pid, int options, struct siginfo __user *infop,
                    int __user *stat_addr, struct rusage __user *ru)
  {
-@@ -1520,26 +1408,17 @@ repeat:
+@@ -1521,26 +1417,17 @@ repeat:
  
                        switch (p->state) {
                        case TASK_TRACED:
@@ -2236,7 +2355,7 @@
                                        continue;
                                retval = wait_task_stopped(p, ret == 2,
                                                           (options & WNOWAIT),
-@@ -1564,6 +1443,10 @@ repeat:
+@@ -1565,6 +1452,10 @@ repeat:
                                                goto check_continued;
                                        if (!likely(options & WEXITED))
                                                continue;
@@ -2247,7 +2366,7 @@
                                        retval = wait_task_zombie(
                                                p, (options & WNOWAIT),
                                                infop, stat_addr, ru);
-@@ -1580,6 +1463,8 @@ check_continued:
+@@ -1581,6 +1472,8 @@ check_continued:
                                flag = 1;
                                if (!unlikely(options & WCONTINUED))
                                        continue;
@@ -2256,7 +2375,7 @@
                                retval = wait_task_continued(
                                        p, (options & WNOWAIT),
                                        infop, stat_addr, ru);
-@@ -1589,14 +1474,7 @@ check_continued:
+@@ -1590,14 +1483,7 @@ check_continued:
                        }
                }
                if (!flag) {
@@ -2272,7 +2391,7 @@
                }
                if (options & __WNOTHREAD)
                        break;
-@@ -1623,7 +1501,7 @@ end:
+@@ -1624,7 +1510,7 @@ end:
        remove_wait_queue(&current->signal->wait_chldexit,&wait);
        if (infop) {
                if (retval > 0)
@@ -2281,8 +2400,10 @@
                else {
                        /*
                         * For a WNOHANG return, clear out all the fields
---- linux-2.6/kernel/ptrace.c
-+++ linux-2.6/kernel/ptrace.c
+Index: b/kernel/ptrace.c
+===================================================================
+--- a/kernel/ptrace.c
++++ b/kernel/ptrace.c
 @@ -18,105 +18,19 @@
  #include <linux/ptrace.h>
  #include <linux/security.h>
@@ -2649,8 +2770,10 @@
 +      return -ENOSYS;
  }
  #endif /* __ARCH_SYS_PTRACE */
---- linux-2.6/kernel/timer.c
-+++ linux-2.6/kernel/timer.c
+Index: b/kernel/timer.c
+===================================================================
+--- a/kernel/timer.c
++++ b/kernel/timer.c
 @@ -943,9 +943,9 @@ asmlinkage long sys_getpid(void)
  }
  
@@ -2672,8 +2795,10 @@
        rcu_read_unlock();
  
        return pid;
---- linux-2.6/kernel/signal.c
-+++ linux-2.6/kernel/signal.c
+Index: b/kernel/signal.c
+===================================================================
+--- a/kernel/signal.c
++++ b/kernel/signal.c
 @@ -19,7 +19,7 @@
  #include <linux/binfmts.h>
  #include <linux/security.h>
@@ -3011,8 +3136,10 @@
  EXPORT_SYMBOL(send_sig);
  EXPORT_SYMBOL(send_sig_info);
  EXPORT_SYMBOL(sigprocmask);
---- linux-2.6/kernel/tsacct.c
-+++ linux-2.6/kernel/tsacct.c
+Index: b/kernel/tsacct.c
+===================================================================
+--- a/kernel/tsacct.c
++++ b/kernel/tsacct.c
 @@ -58,7 +58,7 @@ void bacct_add_tsk(struct taskstats *sta
        stats->ac_pid    = tsk->pid;
        rcu_read_lock();
@@ -3022,8 +3149,10 @@
        rcu_read_unlock();
        stats->ac_utime  = cputime_to_msecs(tsk->utime) * USEC_PER_MSEC;
        stats->ac_stime  = cputime_to_msecs(tsk->stime) * USEC_PER_MSEC;
---- linux-2.6/kernel/sys.c
-+++ linux-2.6/kernel/sys.c
+Index: b/kernel/sys.c
+===================================================================
+--- a/kernel/sys.c
++++ b/kernel/sys.c
 @@ -1456,7 +1456,7 @@ asmlinkage long sys_setpgid(pid_t pid, p
        if (!thread_group_leader(p))
                goto out;
@@ -3033,8 +3162,10 @@
                err = -EPERM;
                if (task_session(p) != task_session(group_leader))
                        goto out;
---- linux-2.6/kernel/fork.c
-+++ linux-2.6/kernel/fork.c
+Index: b/kernel/fork.c
+===================================================================
+--- a/kernel/fork.c
++++ b/kernel/fork.c
 @@ -37,7 +37,7 @@
  #include <linux/futex.h>
  #include <linux/task_io_accounting_ops.h>
@@ -3184,8 +3315,10 @@
                }
        } else {
                free_pid(pid);
---- linux-2.6/include/linux/ptrace.h
-+++ linux-2.6/include/linux/ptrace.h
+Index: b/include/linux/ptrace.h
+===================================================================
+--- a/include/linux/ptrace.h
++++ b/include/linux/ptrace.h
 @@ -67,7 +67,6 @@
  #define PT_TRACE_EXEC 0x00000080
  #define PT_TRACE_VFORK_DONE   0x00000100
@@ -3220,9 +3353,11 @@
  
  #ifndef force_successful_syscall_return
  /*
---- linux-2.6/include/linux/sched.h
-+++ linux-2.6/include/linux/sched.h
-@@ -893,7 +893,6 @@ struct task_struct {
+Index: b/include/linux/sched.h
+===================================================================
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -823,7 +823,6 @@ struct task_struct {
        void *stack;
        atomic_t usage;
        unsigned int flags;     /* per process flags, defined below */
@@ -3230,7 +3365,7 @@
  
        int lock_depth;         /* BKL lock depth */
  
-@@ -922,12 +921,6 @@ struct task_struct {
+@@ -855,12 +854,6 @@ struct task_struct {
  #endif
  
        struct list_head tasks;
@@ -3243,7 +3378,7 @@
  
        struct mm_struct *mm, *active_mm;
  
-@@ -947,15 +940,13 @@ struct task_struct {
+@@ -880,15 +873,13 @@ struct task_struct {
        unsigned long stack_canary;
  #endif
        /* 
@@ -3261,7 +3396,7 @@
         */
        struct list_head children;      /* list of my children */
        struct list_head sibling;       /* linkage in my parent's children list 
*/
-@@ -1094,8 +1085,6 @@ struct task_struct {
+@@ -1027,8 +1018,6 @@ struct task_struct {
  
        struct io_context *io_context;
  
@@ -3270,7 +3405,7 @@
  /*
   * current io wait handle: wait queue entry to use for io waits
   * If this thread is processing aio, this points at the waitqueue
-@@ -1465,6 +1454,7 @@ extern int kill_pgrp(struct pid *pid, in
+@@ -1357,6 +1346,7 @@ extern int kill_pgrp(struct pid *pid, in
  extern int kill_pid(struct pid *pid, int sig, int priv);
  extern int kill_proc_info(int, struct siginfo *, pid_t);
  extern void do_notify_parent(struct task_struct *, int);
@@ -3278,8 +3413,10 @@
  extern void force_sig(int, struct task_struct *);
  extern void force_sig_specific(int, struct task_struct *);
  extern int send_sig(int, struct task_struct *, int);
---- linux-2.6/include/linux/init_task.h
-+++ linux-2.6/include/linux/init_task.h
+Index: b/include/linux/init_task.h
+===================================================================
+--- a/include/linux/init_task.h
++++ b/include/linux/init_task.h
 @@ -133,9 +133,6 @@ extern struct group_info init_groups;
        .ioprio         = 0,                                            \
        .time_slice     = HZ,                                           \
@@ -3290,8 +3427,10 @@
        .parent         = &tsk,                                         \
        .children       = LIST_HEAD_INIT(tsk.children),                 \
        .sibling        = LIST_HEAD_INIT(tsk.sibling),                  \
---- linux-2.6/include/linux/tracehook.h
-+++ linux-2.6/include/linux/tracehook.h
+Index: b/include/linux/tracehook.h
+===================================================================
+--- /dev/null
++++ b/include/linux/tracehook.h
 @@ -0,0 +1,414 @@
 +/*
 + * Tracing hooks
@@ -3707,8 +3846,10 @@
 +
 +
 +#endif        /* <linux/tracehook.h> */
---- linux-2.6/include/asm-i386/tracehook.h
-+++ linux-2.6/include/asm-i386/tracehook.h
+Index: b/include/asm-i386/tracehook.h
+===================================================================
+--- /dev/null
++++ b/include/asm-i386/tracehook.h
 @@ -0,0 +1,52 @@
 +/*
 + * Tracing hooks, i386 CPU support
@@ -3762,8 +3903,10 @@
 +
 +
 +#endif
---- linux-2.6/include/asm-i386/thread_info.h
-+++ linux-2.6/include/asm-i386/thread_info.h
+Index: b/include/asm-i386/thread_info.h
+===================================================================
+--- a/include/asm-i386/thread_info.h
++++ b/include/asm-i386/thread_info.h
 @@ -129,7 +129,6 @@ static inline struct thread_info *curren
  #define TIF_NEED_RESCHED      3       /* rescheduling necessary */
  #define TIF_SINGLESTEP                4       /* restore singlestep on return 
to user mode */
@@ -3801,8 +3944,10 @@
  /* work to do on any return to u-space */
  #define _TIF_ALLWORK_MASK     (0x0000FFFF & ~_TIF_SECCOMP)
  
---- linux-2.6/include/asm-i386/signal.h
-+++ linux-2.6/include/asm-i386/signal.h
+Index: b/include/asm-i386/signal.h
+===================================================================
+--- a/include/asm-i386/signal.h
++++ b/include/asm-i386/signal.h
 @@ -221,10 +221,8 @@ struct pt_regs;
  
  #define ptrace_signal_deliver(regs, cookie)           \
@@ -3815,8 +3960,10 @@
        } while (0)
  
  #endif /* __KERNEL__ */
---- linux-2.6/include/asm-powerpc/tracehook.h
-+++ linux-2.6/include/asm-powerpc/tracehook.h
+Index: b/include/asm-powerpc/tracehook.h
+===================================================================
+--- /dev/null
++++ b/include/asm-powerpc/tracehook.h
 @@ -0,0 +1,74 @@
 +/*
 + * Tracing hooks, PowerPC CPU support
@@ -3892,8 +4039,10 @@
 +
 +
 +#endif
---- linux-2.6/include/asm-x86_64/tracehook.h
-+++ linux-2.6/include/asm-x86_64/tracehook.h
+Index: b/include/asm-x86_64/tracehook.h
+===================================================================
+--- /dev/null
++++ b/include/asm-x86_64/tracehook.h
 @@ -0,0 +1,51 @@
 +/*
 + * Tracing hooks, x86-64 CPU support
@@ -3946,8 +4095,10 @@
 +}
 +
 +#endif
---- linux-2.6/include/asm-x86_64/thread_info.h
-+++ linux-2.6/include/asm-x86_64/thread_info.h
+Index: b/include/asm-x86_64/thread_info.h
+===================================================================
+--- a/include/asm-x86_64/thread_info.h
++++ b/include/asm-x86_64/thread_info.h
 @@ -115,7 +115,7 @@ static inline struct thread_info *stack_
  #define TIF_SYSCALL_AUDIT     7       /* syscall auditing active */
  #define TIF_SECCOMP           8       /* secure computing */
@@ -3965,8 +4116,10 @@
  #define _TIF_IA32             (1<<TIF_IA32)
  #define _TIF_FORK             (1<<TIF_FORK)
  #define _TIF_ABI_PENDING      (1<<TIF_ABI_PENDING)
---- linux-2.6/drivers/connector/cn_proc.c
-+++ linux-2.6/drivers/connector/cn_proc.c
+Index: b/drivers/connector/cn_proc.c
+===================================================================
+--- a/drivers/connector/cn_proc.c
++++ b/drivers/connector/cn_proc.c
 @@ -63,8 +63,8 @@ void proc_fork_connector(struct task_str
        ktime_get_ts(&ts); /* get high res monotonic timestamp */
        put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns);
@@ -3978,8 +4131,10 @@
        ev->event_data.fork.child_pid = task->pid;
        ev->event_data.fork.child_tgid = task->tgid;
  
---- linux-2.6/mm/nommu.c
-+++ linux-2.6/mm/nommu.c
+Index: b/mm/nommu.c
+===================================================================
+--- a/mm/nommu.c
++++ b/mm/nommu.c
 @@ -20,7 +20,7 @@
  #include <linux/pagemap.h>
  #include <linux/slab.h>


--- linux-2.6-utrace.patch DELETED ---

-- 
fedora-cvs-commits mailing list
fedora-cvs-commits@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-cvs-commits

<Prev in Thread] Current Thread [Next in Thread>
  • rpms/kernel/FC-6 kernel-2.6.spec, 1.2992, 1.2993 linux-2.6-sched-cfs.patch, 1.7, 1.8 linux-2.6-utrace-core.patch, 1.3, 1.4 linux-2.6-utrace-ptrace-compat.patch, 1.4, 1.5 linux-2.6-utrace-tracehook.patch, 1.3, 1.4 linux-2.6-utrace.patch, 1.46, NONE, fedora-cvs-commits <=