Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 372927
b: refs/heads/master
c: 67826ea
h: refs/heads/master
i:
  372925: 88531df
  372923: d8582f5
  372919: 6453881
  372911: c22b93f
  372895: 58a754b
  372863: d05a1aa
v: v3
  • Loading branch information
Frederic Weisbecker committed Apr 22, 2013
1 parent 2c6ee50 commit 1208329
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 99e5ada9407cc19d7c4c05ce2165f20dc46fc093
refs/heads/master: 67826eae8c16dbf00c262be6ec15021bb42f69c4
19 changes: 14 additions & 5 deletions trunk/kernel/softirq.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,19 @@ static inline void invoke_softirq(void)
}
}

static inline void tick_irq_exit(void)
{
#ifdef CONFIG_NO_HZ_COMMON
int cpu = smp_processor_id();

/* Make sure that timer wheel updates are propagated */
if ((idle_cpu(cpu) && !need_resched()) || tick_nohz_full_cpu(cpu)) {
if (!in_interrupt())
tick_nohz_irq_exit();
}
#endif
}

/*
* Exit an interrupt context. Process softirqs if needed and possible:
*/
Expand All @@ -348,11 +361,7 @@ void irq_exit(void)
if (!in_interrupt() && local_softirq_pending())
invoke_softirq();

#ifdef CONFIG_NO_HZ_COMMON
/* Make sure that timer wheel updates are propagated */
if (idle_cpu(smp_processor_id()) && !in_interrupt() && !need_resched())
tick_nohz_irq_exit();
#endif
tick_irq_exit();
rcu_irq_exit();
sched_preempt_enable_no_resched();
}
Expand Down

0 comments on commit 1208329

Please sign in to comment.