]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/cpuset.c
cpusets: set task's cpu_allowed to cpu_possible_map when attaching it into top cpuset
[linux-2.6-omap-h63xx.git] / kernel / cpuset.c
index a841b5c01ef9488c12215252085cd1c94c0948d5..6012e326e856da721180a0202dedfbdecbb2ddde 100644 (file)
@@ -1338,10 +1338,14 @@ static void cpuset_attach(struct cgroup_subsys *ss,
        struct cpuset *oldcs = cgroup_cs(oldcont);
        int err;
 
-       mutex_lock(&callback_mutex);
-       guarantee_online_cpus(cs, &cpus);
+       if (cs == &top_cpuset) {
+               cpus = cpu_possible_map;
+       } else {
+               mutex_lock(&callback_mutex);
+               guarantee_online_cpus(cs, &cpus);
+               mutex_unlock(&callback_mutex);
+       }
        err = set_cpus_allowed_ptr(tsk, &cpus);
-       mutex_unlock(&callback_mutex);
        if (err)
                return;