]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
sched/core: Fix unbalance set_rq_online/offline() in sched_cpu_deactivate()
authorYang Yingliang <yangyingliang@huawei.com>
Wed, 3 Jul 2024 03:16:10 +0000 (11:16 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Aug 2024 13:34:35 +0000 (15:34 +0200)
commit fe7a11c78d2a9bdb8b50afc278a31ac177000948 upstream.

If cpuset_cpu_inactive() fails, set_rq_online() need be called to rollback.

Fixes: 120455c514f7 ("sched: Fix hotplug vs CPU bandwidth control")
Cc: stable@kernel.org
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20240703031610.587047-5-yangyingliang@huaweicloud.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/sched/core.c

index 9dee52b4fc7ffd46652d4093f9f2a5c50f227981..3e84a3b7b7bb9bcad355a53ce482f185ec35af66 100644 (file)
@@ -9781,6 +9781,7 @@ int sched_cpu_deactivate(unsigned int cpu)
        ret = cpuset_cpu_inactive(cpu);
        if (ret) {
                sched_smt_present_inc(cpu);
+               sched_set_rq_online(rq, cpu);
                balance_push_set(cpu, false);
                set_cpu_active(cpu, true);
                sched_update_numa(cpu, true);