aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-08-24 01:02:04 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-08-24 01:02:04 -0400
commitb2382b363df828f25e35ed8b70a3da33b29b2a64 (patch)
tree23aa2e70ba4650390c9281b3696172313bdb0f38 /kernel
parent1b5cca3a88b7682d538d129c25f0e3092613a243 (diff)
parent0572e3da3ff5c3744b2f606ecf296d5f89a4bbdf (diff)
Merge upstream into ieee80211.
Hand-fix merge conflict in drivers/usb/net/zd1201.c.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cpuset.c17
-rw-r--r--kernel/sched.c4
-rw-r--r--kernel/signal.c2
-rw-r--r--kernel/timer.c2
4 files changed, 21 insertions, 4 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index 21a4e3b2cbda..e0d296c5b302 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -636,6 +636,23 @@ static void update_cpu_domains(struct cpuset *cur)
636 return; 636 return;
637 637
638 /* 638 /*
639 * Hack to avoid 2.6.13 partial node dynamic sched domain bug.
640 * Require the 'cpu_exclusive' cpuset to include all (or none)
641 * of the CPUs on each node, or return w/o changing sched domains.
642 * Remove this hack when dynamic sched domains fixed.
643 */
644 {
645 int i, j;
646
647 for_each_cpu_mask(i, cur->cpus_allowed) {
648 for_each_cpu_mask(j, node_to_cpumask(cpu_to_node(i))) {
649 if (!cpu_isset(j, cur->cpus_allowed))
650 return;
651 }
652 }
653 }
654
655 /*
639 * Get all cpus from parent's cpus_allowed not part of exclusive 656 * Get all cpus from parent's cpus_allowed not part of exclusive
640 * children 657 * children
641 */ 658 */
diff --git a/kernel/sched.c b/kernel/sched.c
index a646e4f36c41..5f889d0cbfcc 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -3378,8 +3378,8 @@ EXPORT_SYMBOL(set_user_nice);
3378 */ 3378 */
3379int can_nice(const task_t *p, const int nice) 3379int can_nice(const task_t *p, const int nice)
3380{ 3380{
3381 /* convert nice value [19,-20] to rlimit style value [0,39] */ 3381 /* convert nice value [19,-20] to rlimit style value [1,40] */
3382 int nice_rlim = 19 - nice; 3382 int nice_rlim = 20 - nice;
3383 return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur || 3383 return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur ||
3384 capable(CAP_SYS_NICE)); 3384 capable(CAP_SYS_NICE));
3385} 3385}
diff --git a/kernel/signal.c b/kernel/signal.c
index ca1186eef938..d282fea81138 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -692,7 +692,7 @@ static void handle_stop_signal(int sig, struct task_struct *p)
692{ 692{
693 struct task_struct *t; 693 struct task_struct *t;
694 694
695 if (p->flags & SIGNAL_GROUP_EXIT) 695 if (p->signal->flags & SIGNAL_GROUP_EXIT)
696 /* 696 /*
697 * The process is in the middle of dying already. 697 * The process is in the middle of dying already.
698 */ 698 */
diff --git a/kernel/timer.c b/kernel/timer.c
index f2a11887a726..5377f40723ff 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1023,7 +1023,7 @@ asmlinkage long sys_getppid(void)
1023 parent = me->group_leader->real_parent; 1023 parent = me->group_leader->real_parent;
1024 for (;;) { 1024 for (;;) {
1025 pid = parent->tgid; 1025 pid = parent->tgid;
1026#ifdef CONFIG_SMP 1026#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
1027{ 1027{
1028 struct task_struct *old = parent; 1028 struct task_struct *old = parent;
1029 1029