summaryrefslogtreecommitdiff
path: root/kernel/timer.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-07-13 14:05:05 +0200
committerClark Williams <williams@redhat.com>2012-03-02 11:52:30 -0600
commit222836042effa723667a6c1fb762903893066d09 (patch)
treef35cbe95e835696e5bf3da798a925500b3692ef6 /kernel/timer.c
parent3c7e8b9a4a0d7cbb7866cd86c6a5d6b9d41afb55 (diff)
x86-no-perf-irq-work-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index 7ea787b23d76..a791a43799b0 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1362,7 +1362,7 @@ void update_process_times(int user_tick)
scheduler_tick();
run_local_timers();
rcu_check_callbacks(cpu, user_tick);
-#ifdef CONFIG_IRQ_WORK
+#if defined(CONFIG_IRQ_WORK) && !defined(CONFIG_PREEMPT_RT_FULL)
if (in_irq())
irq_work_run();
#endif
@@ -1376,6 +1376,10 @@ static void run_timer_softirq(struct softirq_action *h)
{
struct tvec_base *base = __this_cpu_read(tvec_bases);
+#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
+ irq_work_run();
+#endif
+
printk_tick();
hrtimer_run_pending();