|
|
@@ -4902,6 +4902,7 @@ DEFINE_PER_CPU(struct sched_domain *, sd_asym);
|
|
|
static void update_top_cache_domain(int cpu)
|
|
|
{
|
|
|
struct sched_domain *sd;
|
|
|
+ struct sched_domain *busy_sd = NULL;
|
|
|
int id = cpu;
|
|
|
int size = 1;
|
|
|
|
|
|
@@ -4909,9 +4910,9 @@ static void update_top_cache_domain(int cpu)
|
|
|
if (sd) {
|
|
|
id = cpumask_first(sched_domain_span(sd));
|
|
|
size = cpumask_weight(sched_domain_span(sd));
|
|
|
- sd = sd->parent; /* sd_busy */
|
|
|
+ busy_sd = sd->parent; /* sd_busy */
|
|
|
}
|
|
|
- rcu_assign_pointer(per_cpu(sd_busy, cpu), sd);
|
|
|
+ rcu_assign_pointer(per_cpu(sd_busy, cpu), busy_sd);
|
|
|
|
|
|
rcu_assign_pointer(per_cpu(sd_llc, cpu), sd);
|
|
|
per_cpu(sd_llc_size, cpu) = size;
|