|
@@ -769,12 +769,20 @@ static void rebuild_sched_domains_locked(void)
|
|
|
lockdep_assert_held(&cpuset_mutex);
|
|
|
get_online_cpus();
|
|
|
|
|
|
+ /*
|
|
|
+ * We have raced with CPU hotplug. Don't do anything to avoid
|
|
|
+ * passing doms with offlined cpu to partition_sched_domains().
|
|
|
+ * Anyways, hotplug work item will rebuild sched domains.
|
|
|
+ */
|
|
|
+ if (!cpumask_equal(top_cpuset.cpus_allowed, cpu_active_mask))
|
|
|
+ goto out;
|
|
|
+
|
|
|
/* Generate domain masks and attrs */
|
|
|
ndoms = generate_sched_domains(&doms, &attr);
|
|
|
|
|
|
/* Have scheduler rebuild the domains */
|
|
|
partition_sched_domains(ndoms, doms, attr);
|
|
|
-
|
|
|
+out:
|
|
|
put_online_cpus();
|
|
|
}
|
|
|
#else /* !CONFIG_SMP */
|