mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-21 23:57:36 -04:00
cgroup/cpuset: Free sched domains on rebuild guard failure
generate_sched_domains() returns sched-domain masks and optional attributes that are normally handed to partition_sched_domains(), which takes ownership of them. rebuild_sched_domains_locked() has a WARN guard after generate_sched_domains() and before partition_sched_domains() to avoid passing offline CPUs into the scheduler domain rebuild path. If that guard fires, the function currently returns directly without freeing the generated doms and attr. Free the generated sched-domain masks and attributes before returning from the guard failure path. Signed-off-by: Guopeng Zhang <zhangguopeng@kylinos.cn> Reviewed-by: Waiman Long <longman@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
@@ -1004,8 +1004,11 @@ void rebuild_sched_domains_locked(void)
|
||||
* prevent the panic.
|
||||
*/
|
||||
for (i = 0; doms && i < ndoms; i++) {
|
||||
if (WARN_ON_ONCE(!cpumask_subset(doms[i], cpu_active_mask)))
|
||||
if (WARN_ON_ONCE(!cpumask_subset(doms[i], cpu_active_mask))) {
|
||||
free_sched_domains(doms, ndoms);
|
||||
kfree(attr);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Have scheduler rebuild the domains */
|
||||
|
||||
Reference in New Issue
Block a user