rpms/kernel/devel patch-2.6.22-rc4-git3.bz2.sign, NONE, 1.1 .cvsignore, 1.626, 1.627 kernel-2.6.spec, 1.3217, 1.3218 linux-2.6-utrace.patch, 1.61, 1.62 sources, 1.591, 1.592 upstream, 1.513, 1.514

Dave Jones (davej) fedora-extras-commits at redhat.com
Sat Jun 9 07:38:30 UTC 2007


Author: davej

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24297

Modified Files:
	.cvsignore kernel-2.6.spec linux-2.6-utrace.patch sources 
	upstream 
Added Files:
	patch-2.6.22-rc4-git3.bz2.sign 
Log Message:
git3


--- NEW FILE patch-2.6.22-rc4-git3.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBGalGgyGugalF9Dw4RAkONAJ4+QMsyJSokV1DzcYtD+ErfVl8ZLQCfTr4L
ARQ/GGxR5NvPt5OTimleN1w=
=jTNU
-----END PGP SIGNATURE-----


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.626
retrieving revision 1.627
diff -u -r1.626 -r1.627
--- .cvsignore	5 Jun 2007 04:43:09 -0000	1.626
+++ .cvsignore	9 Jun 2007 07:37:55 -0000	1.627
@@ -3,6 +3,5 @@
 temp-*
 kernel-2.6.21
 linux-2.6.21.tar.bz2
-patch-2.6.22-rc3.bz2
-patch-2.6.22-rc3-git7.bz2
 patch-2.6.22-rc4.bz2
+patch-2.6.22-rc4-git3.bz2


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.3217
retrieving revision 1.3218
diff -u -r1.3217 -r1.3218
--- kernel-2.6.spec	9 Jun 2007 03:19:58 -0000	1.3217
+++ kernel-2.6.spec	9 Jun 2007 07:37:55 -0000	1.3218
@@ -421,6 +421,7 @@
 %else
 # Here should be only the patches up to the upstream canonical Linus tree.
 Patch00: patch-2.6.22-rc4.bz2
+Patch01: patch-2.6.22-rc4-git3.bz2
 %endif
 
 %if !%{nopatches}
@@ -907,6 +908,7 @@
 
 # Update to latest upstream.
 ApplyPatch patch-2.6.22-rc4.bz2
+ApplyPatch patch-2.6.22-rc4-git3.bz2
 
 %endif
 %if !%{nopatches}
@@ -1073,7 +1075,7 @@
 %endif
 
 # Work around sysfs/uevent use-after-free problems with Bluetooth HID
-ApplyPatch linux-2.6-crap-sysfs-workaround.patch
+#ApplyPatch linux-2.6-crap-sysfs-workaround.patch
 
 # Fix the SELinux mprotect checks on executable mappings
 ApplyPatch linux-2.6-selinux-mprotect-checks.patch
@@ -2085,6 +2087,9 @@
 %endif
 
 %changelog
+* Sat Jun 09 2007 Dave Jones <davej at redhat.com>
+- 2.6.22-rc4-git3
+
 * Fri Jun  8 2007 Roland McGrath <roland at redhat.com>
 - Add spec hacks to enable building alternate vanilla and git-based rpms.
 - Enable sparse checking in build for F7 and later.

linux-2.6-utrace.patch:

Index: linux-2.6-utrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-utrace.patch,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- linux-2.6-utrace.patch	4 Jun 2007 22:34:01 -0000	1.61
+++ linux-2.6-utrace.patch	9 Jun 2007 07:37:55 -0000	1.62
@@ -5799,7 +5799,7 @@
  }
 --- linux-2.6/arch/x86_64/kernel/traps.c
 +++ linux-2.6/arch/x86_64/kernel/traps.c
-@@ -862,14 +862,6 @@ asmlinkage void __kprobes do_debug(struc
+@@ -863,14 +863,6 @@ asmlinkage void __kprobes do_debug(struc
  		 */
                  if (!user_mode(regs))
                         goto clear_TF_reenable;
@@ -12741,16 +12741,16 @@
  
  	/*
  	 * We're taking recursive faults here in do_exit. Safest is to just
-@@ -900,6 +835,8 @@ fastcall NORET_TYPE void do_exit(long co
- 
+@@ -916,6 +851,8 @@ fastcall NORET_TYPE void do_exit(long co
  	tsk->flags |= PF_EXITING;
+ 	spin_unlock_irq(&tsk->pi_lock);
  
 +	ptrace_exit(tsk);
 +
  	if (unlikely(in_atomic()))
  		printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",
  				current->comm, current->pid,
-@@ -1055,10 +992,9 @@ static int eligible_child(pid_t pid, int
+@@ -1077,10 +1014,9 @@ static int eligible_child(pid_t pid, int
  	}
  
  	/*
@@ -12763,7 +12763,7 @@
  		return 0;
  
  	/* Wait for all children (clone and not) if __WALL is set;
-@@ -1130,7 +1066,7 @@ static int wait_task_zombie(struct task_
+@@ -1152,7 +1088,7 @@ static int wait_task_zombie(struct task_
  
  		if (unlikely(p->exit_state != EXIT_ZOMBIE))
  			return 0;
@@ -12772,7 +12772,7 @@
  			return 0;
  		get_task_struct(p);
  		read_unlock(&tasklist_lock);
-@@ -1154,15 +1090,9 @@ static int wait_task_zombie(struct task_
+@@ -1176,15 +1112,9 @@ static int wait_task_zombie(struct task_
  		BUG_ON(state != EXIT_DEAD);
  		return 0;
  	}
@@ -12790,7 +12790,7 @@
  		struct signal_struct *psig;
  		struct signal_struct *sig;
  
-@@ -1250,28 +1180,8 @@ static int wait_task_zombie(struct task_
+@@ -1272,28 +1202,8 @@ static int wait_task_zombie(struct task_
  		return retval;
  	}
  	retval = p->pid;
@@ -12821,7 +12821,7 @@
  	BUG_ON(!retval);
  	return retval;
  }
-@@ -1290,7 +1200,7 @@ static int wait_task_stopped(struct task
+@@ -1312,7 +1222,7 @@ static int wait_task_stopped(struct task
  
  	if (!p->exit_code)
  		return 0;
@@ -12830,7 +12830,7 @@
  	    p->signal && p->signal->group_stop_count > 0)
  		/*
  		 * A group stop is in progress and this is the group leader.
-@@ -1311,14 +1221,13 @@ static int wait_task_stopped(struct task
+@@ -1333,14 +1243,13 @@ static int wait_task_stopped(struct task
  	if (unlikely(noreap)) {
  		pid_t pid = p->pid;
  		uid_t uid = p->uid;
@@ -12847,7 +12847,7 @@
  					   infop, ru);
  	}
  
-@@ -1374,9 +1283,7 @@ bail_ref:
+@@ -1396,9 +1305,7 @@ bail_ref:
  	if (!retval && infop)
  		retval = put_user(0, &infop->si_errno);
  	if (!retval && infop)
@@ -12858,7 +12858,7 @@
  	if (!retval && infop)
  		retval = put_user(exit_code, &infop->si_status);
  	if (!retval && infop)
-@@ -1444,22 +1351,6 @@ static int wait_task_continued(struct ta
+@@ -1466,22 +1373,6 @@ static int wait_task_continued(struct ta
  }
  
  
@@ -12881,7 +12881,7 @@
  static long do_wait(pid_t pid, int options, struct siginfo __user *infop,
  		    int __user *stat_addr, struct rusage __user *ru)
  {
-@@ -1499,26 +1390,17 @@ repeat:
+@@ -1521,26 +1412,17 @@ repeat:
  
  			switch (p->state) {
  			case TASK_TRACED:
@@ -12912,7 +12912,7 @@
  					continue;
  				retval = wait_task_stopped(p, ret == 2,
  							   (options & WNOWAIT),
-@@ -1543,6 +1425,10 @@ repeat:
+@@ -1565,6 +1447,10 @@ repeat:
  						goto check_continued;
  					if (!likely(options & WEXITED))
  						continue;
@@ -12923,7 +12923,7 @@
  					retval = wait_task_zombie(
  						p, (options & WNOWAIT),
  						infop, stat_addr, ru);
-@@ -1559,6 +1445,8 @@ check_continued:
+@@ -1581,6 +1467,8 @@ check_continued:
  				flag = 1;
  				if (!unlikely(options & WCONTINUED))
  					continue;
@@ -12932,7 +12932,7 @@
  				retval = wait_task_continued(
  					p, (options & WNOWAIT),
  					infop, stat_addr, ru);
-@@ -1567,16 +1455,15 @@ check_continued:
+@@ -1589,16 +1477,15 @@ check_continued:
  				break;
  			}
  		}
@@ -12957,7 +12957,7 @@
  		if (options & __WNOTHREAD)
  			break;
  		tsk = next_thread(tsk);
-@@ -1602,7 +1489,7 @@ end:
+@@ -1624,7 +1511,7 @@ end:
  	remove_wait_queue(&current->signal->wait_chldexit,&wait);
  	if (infop) {
  		if (retval > 0)
@@ -12968,7 +12968,7 @@
  			 * For a WNOHANG return, clear out all the fields
 --- linux-2.6/kernel/utrace.c
 +++ linux-2.6/kernel/utrace.c
-@@ -0,0 +1,2141 @@
+@@ -0,0 +1,2144 @@
 +/*
 + * utrace infrastructure interface for debugging user processes
 + *
@@ -13072,12 +13072,13 @@
 +	 * to attach.  The PF_STARTING flag is cleared after its
 +	 * report_clone hook has had a chance to run.
 +	 */
-+	if ((target->flags & PF_STARTING)
-+	    && (current->utrace == NULL
-+		|| current->utrace->u.live.cloning != target)) {
-+		yield();
-+		return (signal_pending(current)
-+			? ERR_PTR(-ERESTARTNOINTR) : NULL);
++	if (target->flags & PF_STARTING) {
++		utrace = current->utrace;
++		if (utrace == NULL || utrace->u.live.cloning != target) {
++			yield();
++			return (signal_pending(current)
++				? ERR_PTR(-ERESTARTNOINTR) : NULL);
++		}
 +	}
 +
 +	utrace = kmem_cache_alloc(utrace_cachep, GFP_KERNEL);
@@ -14063,9 +14064,11 @@
 +		 * This must be current to be sure it's not possibly
 +		 * getting into utrace_report_death.
 +		 */
++		struct utrace *utrace;
 +		BUG_ON(tsk != current);
-+		spin_lock(&tsk->utrace->lock);
-+		action = remove_detached(tsk, tsk->utrace, action, ~0UL);
++		utrace = tsk->utrace;
++		spin_lock(&utrace->lock);
++		action = remove_detached(tsk, utrace, action, ~0UL);
 +	}
 +	return action;
 +}
@@ -15112,7 +15115,7 @@
 +}
 --- linux-2.6/kernel/ptrace.c
 +++ linux-2.6/kernel/ptrace.c
-@@ -18,476 +18,1989 @@
+@@ -18,476 +18,1997 @@
  #include <linux/ptrace.h>
  #include <linux/security.h>
  #include <linux/signal.h>
@@ -15867,8 +15870,10 @@
 +				restart = 1;
 +				break;
 +			}
-+			else
++			else {
 +				BUG_ON(error != -ESRCH);
++				restart = -1;
++			}
 +		}
  
 -	if (data & PTRACE_O_TRACEFORK)
@@ -15882,11 +15887,17 @@
 -	if (data & PTRACE_O_TRACECLONE)
 -		child->ptrace |= PT_TRACE_CLONE;
 +		cond_resched();
-+	} while (restart);
++	} while (restart > 0);
  
 -	if (data & PTRACE_O_TRACEEXEC)
 -		child->ptrace |= PT_TRACE_EXEC;
-+	BUG_ON(!list_empty(&tsk->ptracees));
++	if (likely(restart == 0))
++		/*
++		 * If we had an -ESRCH error from utrace_detach, we might
++		 * still be racing with the thread in ptrace_state_unlink,
++		 * but things are OK.
++		 */
++		BUG_ON(!list_empty(&tsk->ptracees));
 +}
  
 -	if (data & PTRACE_O_TRACEVFORKDONE)
@@ -15966,14 +15977,11 @@
 +	const struct utrace_regset *regset = utrace_regset(target, engine,
 +							   view, setno);
 +	int ret;
-+
-+	if (unlikely(regset == NULL))
-+		return -EIO;
  
 -	if (copy_from_user(&newinfo, data, sizeof (siginfo_t)))
 -		return -EFAULT;
-+	if (size == (unsigned int) -1)
-+		size = regset->size * regset->n;
++	if (unlikely(regset == NULL))
++		return -EIO;
  
 -	read_lock(&tasklist_lock);
 -	if (likely(child->sighand != NULL)) {
@@ -15984,6 +15992,9 @@
 -			error = 0;
 -		}
 -		spin_unlock_irq(&child->sighand->siglock);
++	if (size == (unsigned int) -1)
++		size = regset->size * regset->n;
++
 +	if (write) {
 +		if (!access_ok(VERIFY_READ, data, size))
 +			ret = -EIO;
@@ -16218,12 +16229,12 @@
 +	ret = -EPERM;
 +	if (pid == 1)		/* you may not mess with init */
 +		goto out_tsk;
-+
+ 
 +	if (request == PTRACE_ATTACH) {
 +		ret = ptrace_attach(child);
 +		goto out_tsk;
 +	}
- 
++
 +	rcu_read_lock();
 +	engine = utrace_attach(child, UTRACE_ATTACH_MATCH_OPS,
 +			       &ptrace_utrace_ops, NULL);
@@ -17502,7 +17513,7 @@
  		set_tsk_thread_flag(t, TIF_SIGPENDING);
  		return 1;
  	}
-@@ -526,8 +525,6 @@ static int check_kill_permission(int sig
+@@ -533,8 +532,6 @@ static int check_kill_permission(int sig
  	return security_task_kill(t, info, sig, 0);
  }
  
@@ -17511,7 +17522,7 @@
  
  /*
   * Handle magic process-wide effects of stop/continue signals.
-@@ -839,7 +836,7 @@ __group_complete_signal(int sig, struct 
+@@ -846,7 +843,7 @@ __group_complete_signal(int sig, struct 
  	 */
  	if (sig_fatal(p, sig) && !(p->signal->flags & SIGNAL_GROUP_EXIT) &&
  	    !sigismember(&t->real_blocked, sig) &&
@@ -17520,7 +17531,7 @@
  		/*
  		 * This signal will be fatal to the whole group.
  		 */
-@@ -1394,8 +1391,7 @@ void do_notify_parent(struct task_struct
+@@ -1401,8 +1398,7 @@ void do_notify_parent(struct task_struct
   	/* do_notify_parent_cldstop should have been called instead.  */
   	BUG_ON(tsk->state & (TASK_STOPPED|TASK_TRACED));
  
@@ -17530,7 +17541,7 @@
  
  	info.si_signo = sig;
  	info.si_errno = 0;
-@@ -1420,7 +1416,7 @@ void do_notify_parent(struct task_struct
+@@ -1427,7 +1423,7 @@ void do_notify_parent(struct task_struct
  
  	psig = tsk->parent->sighand;
  	spin_lock_irqsave(&psig->siglock, flags);
@@ -17539,7 +17550,7 @@
  	    (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN ||
  	     (psig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDWAIT))) {
  		/*
-@@ -1448,20 +1444,13 @@ void do_notify_parent(struct task_struct
+@@ -1455,20 +1451,13 @@ void do_notify_parent(struct task_struct
  	spin_unlock_irqrestore(&psig->siglock, flags);
  }
  
@@ -17561,7 +17572,7 @@
  	info.si_signo = SIGCHLD;
  	info.si_errno = 0;
  	info.si_pid = tsk->pid;
-@@ -1486,6 +1475,15 @@ static void do_notify_parent_cldstop(str
+@@ -1493,6 +1482,15 @@ static void do_notify_parent_cldstop(str
   		BUG();
   	}
  
@@ -17577,7 +17588,7 @@
  	sighand = parent->sighand;
  	spin_lock_irqsave(&sighand->siglock, flags);
  	if (sighand->action[SIGCHLD-1].sa.sa_handler != SIG_IGN &&
-@@ -1498,110 +1496,6 @@ static void do_notify_parent_cldstop(str
+@@ -1505,111 +1503,6 @@ static void do_notify_parent_cldstop(str
  	spin_unlock_irqrestore(&sighand->siglock, flags);
  }
  
@@ -17663,8 +17674,9 @@
 -	/*
 -	 * Queued signals ignored us while we were stopped for tracing.
 -	 * So check for any that we should take before resuming user mode.
+-	 * This sets TIF_SIGPENDING, but never clears it.
 -	 */
--	recalc_sigpending();
+-	recalc_sigpending_tsk(current);
 -}
 -
 -void ptrace_notify(int exit_code)
@@ -17688,7 +17700,7 @@
  static void
  finish_stop(int stop_count)
  {
-@@ -1610,7 +1504,7 @@ finish_stop(int stop_count)
+@@ -1618,7 +1511,7 @@ finish_stop(int stop_count)
  	 * a group stop in progress and we are the last to stop,
  	 * report to the parent.  When ptraced, every thread reports itself.
  	 */
@@ -17697,7 +17709,7 @@
  		read_lock(&tasklist_lock);
  		do_notify_parent_cldstop(current, CLD_STOPPED);
  		read_unlock(&tasklist_lock);
-@@ -1737,44 +1631,24 @@ relock:
+@@ -1745,44 +1638,24 @@ relock:
  		    handle_group_stop())
  			goto relock;
  
@@ -17758,7 +17770,7 @@
  		if (ka->sa.sa_handler == SIG_IGN) /* Do nothing.  */
  			continue;
  		if (ka->sa.sa_handler != SIG_DFL) {
-@@ -1823,7 +1697,7 @@ relock:
+@@ -1831,7 +1704,7 @@ relock:
  				spin_lock_irq(&current->sighand->siglock);
  			}
  
@@ -17767,7 +17779,7 @@
  				/* It released the siglock.  */
  				goto relock;
  			}
-@@ -1850,13 +1724,13 @@ relock:
+@@ -1858,13 +1731,13 @@ relock:
  			 * first and our do_group_exit call below will use
  			 * that value and ignore the one we pass it.
  			 */
@@ -17783,7 +17795,7 @@
  		/* NOTREACHED */
  	}
  	spin_unlock_irq(&current->sighand->siglock);
-@@ -1868,7 +1742,6 @@ EXPORT_SYMBOL_GPL(dequeue_signal);
+@@ -1876,7 +1749,6 @@ EXPORT_SYMBOL_GPL(dequeue_signal);
  EXPORT_SYMBOL(flush_signals);
  EXPORT_SYMBOL(force_sig);
  EXPORT_SYMBOL(kill_proc);
@@ -19309,7 +19321,7 @@
  	/*
  	 * cache last used pipe for splice
  	 */
-@@ -1356,6 +1354,7 @@ extern int kill_pgrp(struct pid *pid, in
+@@ -1357,6 +1355,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);


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/sources,v
retrieving revision 1.591
retrieving revision 1.592
diff -u -r1.591 -r1.592
--- sources	5 Jun 2007 04:43:09 -0000	1.591
+++ sources	9 Jun 2007 07:37:55 -0000	1.592
@@ -1,2 +1,3 @@
 1b515f588078dfa7f4bab2634bd17e80  linux-2.6.21.tar.bz2
 54800bc1cb7da0ed0666be2564dfd242  patch-2.6.22-rc4.bz2
+61434dcdcd983dbee2eee6cdf16463bf  patch-2.6.22-rc4-git3.bz2


Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/upstream,v
retrieving revision 1.513
retrieving revision 1.514
diff -u -r1.513 -r1.514
--- upstream	5 Jun 2007 04:43:09 -0000	1.513
+++ upstream	9 Jun 2007 07:37:55 -0000	1.514
@@ -1,2 +1,3 @@
 linux-2.6.21.tar.bz2
 patch-2.6.22-rc4.bz2
+patch-2.6.22-rc4-git3.bz2




More information about the fedora-extras-commits mailing list