summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-08-24 01:03:34 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-08-24 01:03:34 -0400
commit75a95178dafb5c8d69b4abe45ea746a9cea23142 (patch)
tree1dbf80c83d9521dcdebc9e670f48da6c1ba34187 /kernel
parent8531c5ffbca65f6df868637c26e6df6f88bff738 (diff)
parent0572e3da3ff5c3744b2f606ecf296d5f89a4bbdf (diff)
Merge upstream into 'upstream' branch of netdev-2.6.git.
Hand fix merge conflict in drivers/net/tokenring/Kconfig.
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;