Commit f9a1767c authored by Waiman Long's avatar Waiman Long Committed by Tejun Heo
Browse files

cgroup/cpuset: Fix incorrect change to effective_xcpus in partition_xcpus_del()



The effective_xcpus of a cpuset can contain offline CPUs. In
partition_xcpus_del(), the xcpus parameter is incorrectly used as
a temporary cpumask to mask out offline CPUs. As xcpus can be the
effective_xcpus of a cpuset, this can result in unexpected changes
in that cpumask. Fix this problem by not making any changes to the
xcpus parameter.

Fixes: 11e5f407 ("cgroup/cpuset: Keep track of CPUs in isolated partitions")
Reviewed-by: default avatarChen Ridong <chenridong@huaweicloud.com>
Signed-off-by: default avatarWaiman Long <longman@redhat.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 5ee01f1a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1221,8 +1221,8 @@ static void partition_xcpus_del(int old_prs, struct cpuset *parent,
		isolated_cpus_update(old_prs, parent->partition_root_state,
				     xcpus);

	cpumask_and(xcpus, xcpus, cpu_active_mask);
	cpumask_or(parent->effective_cpus, parent->effective_cpus, xcpus);
	cpumask_and(parent->effective_cpus, parent->effective_cpus, cpu_active_mask);
}

/*