mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Merge tag 'cgroup-for-7.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull cgroup fixes from Tejun Heo: - Fix circular locking dependency in cpuset partition code by deferring housekeeping_update() calls to a workqueue instead of calling them directly under cpus_read_lock - Fix null-ptr-deref in rebuild_sched_domains_cpuslocked() when generate_sched_domains() returns NULL due to kmalloc failure - Fix incorrect cpuset behavior for effective_xcpus in partition_xcpus_del() and cpuset_update_tasks_cpumask() in update_cpumasks_hier() - Fix race between task migration and cgroup iteration * tag 'cgroup-for-7.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cgroup/cpuset: fix null-ptr-deref in rebuild_sched_domains_cpuslocked cgroup/cpuset: Call housekeeping_update() without holding cpus_read_lock cgroup/cpuset: Defer housekeeping_update() calls from CPU hotplug to workqueue cgroup/cpuset: Move housekeeping_update()/rebuild_sched_domains() together kselftest/cgroup: Simplify test_cpuset_prs.sh by removing "S+" command cgroup/cpuset: Set isolated_cpus_updating only if isolated_cpus is changed cgroup/cpuset: Clarify exclusion rules for cpuset internal variables cgroup/cpuset: Fix incorrect use of cpuset_update_tasks_cpumask() in update_cpumasks_hier() cgroup/cpuset: Fix incorrect change to effective_xcpus in partition_xcpus_del() cgroup: fix race between task migration and iteration
This commit is contained in:
@@ -1559,8 +1559,6 @@ int tmigr_isolated_exclude_cpumask(struct cpumask *exclude_cpumask)
|
||||
cpumask_var_t cpumask __free(free_cpumask_var) = CPUMASK_VAR_NULL;
|
||||
int cpu;
|
||||
|
||||
lockdep_assert_cpus_held();
|
||||
|
||||
if (!works)
|
||||
return -ENOMEM;
|
||||
if (!alloc_cpumask_var(&cpumask, GFP_KERNEL))
|
||||
@@ -1570,6 +1568,7 @@ int tmigr_isolated_exclude_cpumask(struct cpumask *exclude_cpumask)
|
||||
* First set previously isolated CPUs as available (unisolate).
|
||||
* This cpumask contains only CPUs that switched to available now.
|
||||
*/
|
||||
guard(cpus_read_lock)();
|
||||
cpumask_andnot(cpumask, cpu_online_mask, exclude_cpumask);
|
||||
cpumask_andnot(cpumask, cpumask, tmigr_available_cpumask);
|
||||
|
||||
@@ -1626,7 +1625,6 @@ static int __init tmigr_init_isolation(void)
|
||||
cpumask_andnot(cpumask, cpu_possible_mask, housekeeping_cpumask(HK_TYPE_DOMAIN));
|
||||
|
||||
/* Protect against RCU torture hotplug testing */
|
||||
guard(cpus_read_lock)();
|
||||
return tmigr_isolated_exclude_cpumask(cpumask);
|
||||
}
|
||||
late_initcall(tmigr_init_isolation);
|
||||
|
||||
Reference in New Issue
Block a user