aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/time/tick-sched.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index da53c8f2beb..1c9f53b2ddb 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -251,14 +251,15 @@ void tick_nohz_task_switch(struct task_struct *tsk)
{
unsigned long flags;
- if (!tick_nohz_full_cpu(smp_processor_id()))
- return;
-
local_irq_save(flags);
+ if (!tick_nohz_full_cpu(smp_processor_id()))
+ goto out;
+
if (tick_nohz_tick_stopped() && !can_stop_full_tick())
tick_nohz_full_kick();
+out:
local_irq_restore(flags);
}