rpms/kernel/devel kernel.spec, 1.1875, 1.1876 linux-2.6-utrace-ptrace.patch, 1.1, 1.2 linux-2.6-utrace.patch, 1.119, 1.120

roland roland at fedoraproject.org
Fri Dec 18 09:56:48 UTC 2009


Author: roland

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18373

Modified Files:
	kernel.spec linux-2.6-utrace-ptrace.patch 
	linux-2.6-utrace.patch 
Log Message:
minor utrace update


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1875
retrieving revision 1.1876
diff -u -p -r1.1875 -r1.1876
--- kernel.spec	17 Dec 2009 16:49:39 -0000	1.1875
+++ kernel.spec	18 Dec 2009 09:56:47 -0000	1.1876
@@ -2009,6 +2009,9 @@ fi
 # and build.
 
 %changelog
+* Fri Dec 18 2009 Roland McGrath <roland at redhat.com> - 2.6.32.1-13
+- minor utrace update
+
 * Thu Dec 17 2009 Matthew Garrett <mjg at redhat.com> 2.6.32.1-12
 - linux-2.6-driver-level-usb-autosuspend.diff: fix so it works properly...
 - linux-2.6-fix-btusb-autosuspend.patch: avoid bluetooth connection drops

linux-2.6-utrace-ptrace.patch:
 include/linux/ptrace.h |    2 
 kernel/Makefile        |    1 
 kernel/ptrace-utrace.c | 1080 +++++++++++++++++++++++++++++++++++++++++++++++++
 kernel/ptrace.c        |  597 +++++++++++++--------------
 kernel/utrace.c        |   16 
 5 files changed, 1391 insertions(+), 305 deletions(-)

Index: linux-2.6-utrace-ptrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-utrace-ptrace.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- linux-2.6-utrace-ptrace.patch	16 Dec 2009 22:09:42 -0000	1.1
+++ linux-2.6-utrace-ptrace.patch	18 Dec 2009 09:56:47 -0000	1.2
@@ -1798,7 +1798,7 @@ index a408bf7..4e87441 100644  
  #endif	/* CONFIG_COMPAT */
 +#endif	/* CONFIG_UTRACE */
 diff --git a/kernel/utrace.c b/kernel/utrace.c
-index cb62fcd..9353cc5 100644  
+index 84d965d..ead1f13 100644  
 --- a/kernel/utrace.c
 +++ b/kernel/utrace.c
 @@ -811,6 +811,22 @@ relock:

linux-2.6-utrace.patch:
 Documentation/DocBook/Makefile    |    2 
 Documentation/DocBook/utrace.tmpl |  590 +++++++++
 fs/proc/array.c                   |    3 
 include/linux/sched.h             |    5 
 include/linux/tracehook.h         |   87 +
 include/linux/utrace.h            |  694 ++++++++++
 init/Kconfig                      |    9 
 kernel/Makefile                   |    1 
 kernel/fork.c                     |    3 
 kernel/ptrace.c                   |   14 
 kernel/utrace.c                   | 2427 ++++++++++++++++++++++++++++++++++++++
 11 files changed, 3833 insertions(+), 2 deletions(-)

Index: linux-2.6-utrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-utrace.patch,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -p -r1.119 -r1.120
--- linux-2.6-utrace.patch	16 Dec 2009 22:09:42 -0000	1.119
+++ linux-2.6-utrace.patch	18 Dec 2009 09:56:47 -0000	1.120
@@ -35,8 +35,8 @@ Signed-off-by: Roland McGrath <roland at re
  kernel/Makefile                   |    1 +
  kernel/fork.c                     |    3 +
  kernel/ptrace.c                   |   14 +
- kernel/utrace.c                   | 2424 +++++++++++++++++++++++++++++++++++++
- 11 files changed, 3830 insertions(+), 2 deletions(-)
+ kernel/utrace.c                   | 2427 +++++++++++++++++++++++++++++++++++++
+ 11 files changed, 3833 insertions(+), 2 deletions(-)
 
 diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
 index ab8300f..95f59e4 100644  
@@ -685,7 +685,7 @@ index 6c8928b..139d300 100644  
     	u32 parent_exec_id;
     	u32 self_exec_id;
 diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h
-index c78b2f4..0f5a48c 100644  
+index c78b2f4..71fa250 100644  
 --- a/include/linux/tracehook.h
 +++ b/include/linux/tracehook.h
 @@ -49,6 +49,7 @@
@@ -911,12 +911,12 @@ index c78b2f4..0f5a48c 100644  
  {
 +	struct task_struct *task = current;
 +	/*
-+	 * If we race with attach which sets nonzero ->utrace_flags,
-+	 * make sure we do not read ->utrace_flags before the caller
-+	 * clears TIF_NOTIFY_RESUME. This pairs with the implicit mb()
-+	 * before setting TIF_NOTIFY_RESUME in set_notify_resume().
++	 * Prevent the following store/load from getting ahead of the
++	 * caller which clears TIF_NOTIFY_RESUME. This pairs with the
++	 * implicit mb() before setting TIF_NOTIFY_RESUME in
++	 * set_notify_resume().
 +	 */
-+	smp_rmb();
++	smp_mb();
 +	if (task_utrace_flags(task))
 +		utrace_resume(task, regs);
  }
@@ -1623,12 +1623,12 @@ index ...c3036c8 100644  
 +
 +#endif	/* linux/utrace.h */
 diff --git a/init/Kconfig b/init/Kconfig
-index eb4b337..0832ea2 100644  
+index eb4b337..140e636 100644  
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -295,6 +295,15 @@ config AUDIT
- 	  logging of avc messages output).  Does not do system-call
- 	  auditing without CONFIG_AUDITSYSCALL.
+@@ -310,6 +310,15 @@ config AUDIT_TREE
+ 	depends on AUDITSYSCALL
+ 	select INOTIFY
  
 +config UTRACE
 +	bool "Infrastructure for tracing and debugging user processes"
@@ -1639,9 +1639,9 @@ index eb4b337..0832ea2 100644  
 +	  kernel interface exported to kernel modules, to track events in
 +	  user threads, extract and change user thread state.
 +
- config AUDITSYSCALL
- 	bool "Enable system-call auditing support"
- 	depends on AUDIT && (X86 || PPC || S390 || IA64 || UML || SPARC64 || SUPERH)
+ menu "RCU Subsystem"
+ 
+ choice
 diff --git a/kernel/Makefile b/kernel/Makefile
 index d7c13d2..263bb19 100644  
 --- a/kernel/Makefile
@@ -1723,10 +1723,10 @@ index b7c1d32..a408bf7 100644  
  	if (!current->ptrace) {
 diff --git a/kernel/utrace.c b/kernel/utrace.c
 new file mode 100644
-index ...cb62fcd 100644  
+index ...84d965d 100644  
 --- /dev/null
 +++ b/kernel/utrace.c
-@@ -0,0 +1,2424 @@
+@@ -0,0 +1,2427 @@
 +/*
 + * utrace infrastructure interface for debugging user processes
 + *
@@ -2575,35 +2575,38 @@ index ...cb62fcd 100644  
 +
 +	spin_lock(&utrace->lock);
 +
-+	/*
-+	 * If the target will do some final callbacks but hasn't
-+	 * finished them yet, we know because it clears these event
-+	 * bits after it's done.  Instead of cleaning up here and
-+	 * requiring utrace_report_death() to cope with it, we delay
-+	 * the REAP report and the teardown until after the target
-+	 * finishes its death reports.
-+	 */
-+	if (reap && (target->utrace_flags & _UTRACE_DEATH_EVENTS)) {
++	if (reap) {
++		/*
++		 * If the target will do some final callbacks but hasn't
++		 * finished them yet, we know because it clears these event
++		 * bits after it's done.  Instead of cleaning up here and
++		 * requiring utrace_report_death() to cope with it, we
++		 * delay the REAP report and the teardown until after the
++		 * target finishes its death reports.
++		 */
 +		utrace->reap = 1;
-+		spin_unlock(&utrace->lock);
-+		return;
-+	}
-+
-+	/*
-+	 * After we unlock with this flag clear, any competing
-+	 * utrace_control/utrace_set_events calls know that we've
-+	 * finished our callbacks and any detach bookkeeping.
-+	 */
-+	utrace->death = 0;
 +
-+	if (!reap && !utrace->reap) {
++		if (target->utrace_flags & _UTRACE_DEATH_EVENTS) {
++			spin_unlock(&utrace->lock);
++			return;
++		}
++	} else {
 +		/*
-+		 * We're just dead, not reaped yet.
-+		 * This will reset @target->utrace_flags so the later
-+		 * call with @reap set won't hit the check above.
++		 * After we unlock with this flag clear, any competing
++		 * utrace_control/utrace_set_events calls know that we've
++		 * finished our callbacks and any detach bookkeeping.
 +		 */
-+		utrace_reset(target, utrace);
-+		return;
++		utrace->death = 0;
++
++		if (!utrace->reap) {
++			/*
++			 * We're just dead, not reaped yet.  This will
++			 * reset @target->utrace_flags so the later call
++			 * with @reap set won't hit the check above.
++			 */
++			utrace_reset(target, utrace);
++			return;
++		}
 +	}
 +
 +	/*




More information about the fedora-extras-commits mailing list