summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorWaiman Long <longman@redhat.com>2026-10-19 14:10:15 -0400
committerTejun Heo <tj@kernel.org>2026-10-19 13:08:19 -1000
commit2c0a5742fc459cd8416607acff4a38a1abcb2e1b (patch)
tree76c98b4b78e47d287b2cfc362933475a8eda602f /kernel
parent9527ff78a413e2b4089e78953926af77b98fd43f (diff)
downloadlinux-2c0a5742fc459cd8416607acff4a38a1abcb2e1b.tar.gz
linux-2c0a5742fc459cd8416607acff4a38a1abcb2e1b.zip
cgroup/cpuset: Do housekeeping check before converting invalid partition to valid
When a hotplug event happens or when update_cpumasks_hier() is called, an invalid partition may be converted back to valid. However check against housekeeping conflict isn't being done which can lead to a partition state that violates the housekeeping rules. Update the code to allow reviving an invalid partition only if it can pass the housekeeping check. Fixes: 4a74e418881f ("cgroup/cpuset: Check partition conflict with housekeeping setup") Reviewed-by: Guopeng Zhang <zhangguopeng@kylinos.cn> Signed-off-by: Waiman Long <longman@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cgroup/cpuset.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index da4b4cbcbe12..b8a721bbe50d 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -1981,9 +1981,15 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
bool exclusive = true;
/*
- * Convert invalid partition to valid has to
- * pass the cpu exclusivity test.
+ * Convert invalid partition to valid has to pass the
+ * cpu exclusivity test as well as the housekeeping
+ * check.
*/
+ if (prstate_housekeeping_conflict(cs->partition_root_state,
+ parent_prs, xcpus, NULL)) {
+ part_error = PERR_HKEEPING;
+ goto write_error;
+ }
rcu_read_lock();
cpuset_for_each_child(child, css, parent) {
if (child == cs)