diff options
Diffstat (limited to 'kernel/time/tick-sched.c')
| -rw-r--r-- | kernel/time/tick-sched.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index d58e552d9fd..fb8e5e469d1 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -20,6 +20,7 @@  #include <linux/profile.h>  #include <linux/sched.h>  #include <linux/module.h> +#include <linux/irq_work.h>  #include <asm/irq_regs.h> @@ -28,7 +29,7 @@  /*   * Per cpu nohz control structure   */ -static DEFINE_PER_CPU(struct tick_sched, tick_cpu_sched); +DEFINE_PER_CPU(struct tick_sched, tick_cpu_sched);  /*   * The time, when the last jiffy update happened. Protected by jiffies_lock. @@ -331,8 +332,8 @@ static ktime_t tick_nohz_stop_sched_tick(struct tick_sched *ts,  		time_delta = timekeeping_max_deferment();  	} while (read_seqretry(&jiffies_lock, seq)); -	if (rcu_needs_cpu(cpu, &rcu_delta_jiffies) || printk_needs_cpu(cpu) || -	    arch_needs_cpu(cpu)) { +	if (rcu_needs_cpu(cpu, &rcu_delta_jiffies) || +	    arch_needs_cpu(cpu) || irq_work_needs_cpu()) {  		next_jiffies = last_jiffies + 1;  		delta_jiffies = 1;  	} else {  |