From 9edc0820b51a384c93c890cbc9e89ae07a748332 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 21 Sep 2022 12:25:27 +0200 Subject: [PATCH] 5.19-stable patches added patches: cgroup-add-missing-cpus_read_lock-to-cgroup_attach_task_all.patch --- ..._read_lock-to-cgroup_attach_task_all.patch | 43 +++++++++++++++++++ queue-5.19/series | 1 + 2 files changed, 44 insertions(+) create mode 100644 queue-5.19/cgroup-add-missing-cpus_read_lock-to-cgroup_attach_task_all.patch diff --git a/queue-5.19/cgroup-add-missing-cpus_read_lock-to-cgroup_attach_task_all.patch b/queue-5.19/cgroup-add-missing-cpus_read_lock-to-cgroup_attach_task_all.patch new file mode 100644 index 00000000000..ddbadab7373 --- /dev/null +++ b/queue-5.19/cgroup-add-missing-cpus_read_lock-to-cgroup_attach_task_all.patch @@ -0,0 +1,43 @@ +From 43626dade36fa74d3329046f4ae2d7fdefe401c6 Mon Sep 17 00:00:00 2001 +From: Tetsuo Handa +Date: Thu, 25 Aug 2022 17:38:38 +0900 +Subject: cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all() + +From: Tetsuo Handa + +commit 43626dade36fa74d3329046f4ae2d7fdefe401c6 upstream. + +syzbot is hitting percpu_rwsem_assert_held(&cpu_hotplug_lock) warning at +cpuset_attach() [1], for commit 4f7e7236435ca0ab ("cgroup: Fix +threadgroup_rwsem <-> cpus_read_lock() deadlock") missed that +cpuset_attach() is also called from cgroup_attach_task_all(). +Add cpus_read_lock() like what cgroup_procs_write_start() does. + +Link: https://syzkaller.appspot.com/bug?extid=29d3a3b4d86c8136ad9e [1] +Reported-by: syzbot +Signed-off-by: Tetsuo Handa +Fixes: 4f7e7236435ca0ab ("cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock") +Signed-off-by: Tejun Heo +Signed-off-by: Greg Kroah-Hartman +--- + kernel/cgroup/cgroup-v1.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/kernel/cgroup/cgroup-v1.c ++++ b/kernel/cgroup/cgroup-v1.c +@@ -59,6 +59,7 @@ int cgroup_attach_task_all(struct task_s + int retval = 0; + + mutex_lock(&cgroup_mutex); ++ cpus_read_lock(); + percpu_down_write(&cgroup_threadgroup_rwsem); + for_each_root(root) { + struct cgroup *from_cgrp; +@@ -72,6 +73,7 @@ int cgroup_attach_task_all(struct task_s + break; + } + percpu_up_write(&cgroup_threadgroup_rwsem); ++ cpus_read_unlock(); + mutex_unlock(&cgroup_mutex); + + return retval; diff --git a/queue-5.19/series b/queue-5.19/series index 3943e7bad57..e1eaf412a1e 100644 --- a/queue-5.19/series +++ b/queue-5.19/series @@ -33,3 +33,4 @@ drm-amdgpu-move-nbio-ih_doorbell_range-into-ih-code-for-vega.patch drm-amdgpu-move-nbio-sdma_doorbell_range-into-sdma-code-for-vega.patch net-find-dst-with-sk-s-xfrm-policy-not-ctl_sk.patch dt-bindings-apple-aic-fix-required-item-apple-fiq-index-in-affinity-description.patch +cgroup-add-missing-cpus_read_lock-to-cgroup_attach_task_all.patch -- 2.47.3