diff options
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index 8fe1ff40102d..d7837d45419e 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -280,9 +280,14 @@ asmlinkage void do_softirq(void) | |||
280 | */ | 280 | */ |
281 | void irq_enter(void) | 281 | void irq_enter(void) |
282 | { | 282 | { |
283 | #ifdef CONFIG_NO_HZ | ||
284 | int cpu = smp_processor_id(); | ||
285 | if (idle_cpu(cpu) && !in_interrupt()) | ||
286 | tick_nohz_stop_idle(cpu); | ||
287 | #endif | ||
283 | __irq_enter(); | 288 | __irq_enter(); |
284 | #ifdef CONFIG_NO_HZ | 289 | #ifdef CONFIG_NO_HZ |
285 | if (idle_cpu(smp_processor_id())) | 290 | if (idle_cpu(cpu)) |
286 | tick_nohz_update_jiffies(); | 291 | tick_nohz_update_jiffies(); |
287 | #endif | 292 | #endif |
288 | } | 293 | } |