From: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> v4.14.137-rt65-rc1 stable review patch. If anyone has any objections, please let me know. ----------- [ Upstream commit 761126efdcbe3fa3e99c9079fa0ad6eca2f251f2 ] The caller holds a lock which already disables preemption. Drop the preempt_disable_rt() statement in get_nohz_timer_target(). Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Signed-off-by: Tom Zanussi <zanussi@xxxxxxxxxx> Conflicts: kernel/sched/core.c --- kernel/sched/core.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 7d2cc0715114..17da1c1aba56 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -583,14 +583,11 @@ void resched_cpu(int cpu) */ int get_nohz_timer_target(void) { - int i, cpu; + int i, cpu = smp_processor_id(); struct sched_domain *sd; - preempt_disable_rt(); - cpu = smp_processor_id(); - if (!idle_cpu(cpu) && is_housekeeping_cpu(cpu)) - goto preempt_en_rt; + return cpu; rcu_read_lock(); for_each_domain(cpu, sd) { @@ -609,8 +606,6 @@ int get_nohz_timer_target(void) cpu = housekeeping_any_cpu(); unlock: rcu_read_unlock(); -preempt_en_rt: - preempt_enable_rt(); return cpu; } -- 2.14.1