summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-08-24 00:55:22 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-08-24 00:55:22 -0400
commit617e44fdfd7ee3d53388ab295d9411b826437ce9 (patch)
treeed6bd2a5960f706fa93c6df2cbfb75ede926fd1c /kernel
parent4887f76ec3d38e99286c9d0fdd6a719174d02e44 (diff)
parent0572e3da3ff5c3744b2f606ecf296d5f89a4bbdf (diff)
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cpuset.c17
-rw-r--r--kernel/timer.c2
2 files changed, 18 insertions, 1 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)
return;
/*
+ * Hack to avoid 2.6.13 partial node dynamic sched domain bug.
+ * Require the 'cpu_exclusive' cpuset to include all (or none)
+ * of the CPUs on each node, or return w/o changing sched domains.
+ * Remove this hack when dynamic sched domains fixed.
+ */
+ {
+ int i, j;
+
+ for_each_cpu_mask(i, cur->cpus_allowed) {
+ for_each_cpu_mask(j, node_to_cpumask(cpu_to_node(i))) {
+ if (!cpu_isset(j, cur->cpus_allowed))
+ return;
+ }
+ }
+ }
+
+ /*
* Get all cpus from parent's cpus_allowed not part of exclusive
* children
*/
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)
parent = me->group_leader->real_parent;
for (;;) {
pid = parent->tgid;
-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
{
struct task_struct *old = parent;