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(¤t->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(¤t->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(¤t->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