Commit 0a948df1 authored by Yu Liao's avatar Yu Liao
Browse files

sched/smt: fix unbalance sched_smt_present dec/inc

hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7YBSW


CVE: NA

--------------------------------

If cpuset_cpu_inactive() fails in sched_cpu_deactivate(), the
cpu offline failed, but sched_smt_present is decreased before
calling sched_cpu_deactivate, it leads unbalance dec/inc, so
fix it by increasing sched_smt_present in the error path.

Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: default avatarYu Liao <liaoyu15@huawei.com>
parent 4b99a7ce
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5897,6 +5897,10 @@ int sched_cpu_deactivate(unsigned int cpu)

	ret = cpuset_cpu_inactive(cpu);
	if (ret) {
#ifdef CONFIG_SCHED_SMT
		if (cpumask_weight(cpu_smt_mask(cpu)) == 2)
			static_branch_inc_cpuslocked(&sched_smt_present);
#endif
		set_cpu_active(cpu, true);
		return ret;
	}