summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJia Hongtao <hongtao.jia@freescale.com>2015-04-09 07:03:29 (GMT)
committerHonghua Yin <Hong-Hua.Yin@freescale.com>2015-04-15 08:32:26 (GMT)
commitacc6b9b8ac4546066221f6ad0e57310ad3a9ba50 (patch)
tree8fba390fe679aaa6872d63aae2e75d95d77103ad /kernel
parente306143c7e4d57c3b792e66fb8f581c37c6b85eb (diff)
downloadlinux-fsl-qoriq-acc6b9b8ac4546066221f6ad0e57310ad3a9ba50.tar.xz
Do not miss inactive (deferred) timers
The inactive timer could not be raised casued by this patch: https://lkml.org/lkml/2014/2/28/230 This makes the system using deferred timer like CPUfreq not working. Signed-off-by: Jia Hongtao <hongtao.jia@freescale.com> Change-Id: I8e1b6dbcb2845c6e502d9ff50617e8c30d2da7c0 Reviewed-on: http://git.am.freescale.net:8181/34890 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Yang Li <LeoLi@freescale.com> Reviewed-by: Honghua Yin <Hong-Hua.Yin@freescale.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/timer.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index 3b79da2..20c0039 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1486,18 +1486,11 @@ void run_local_timers(void)
}
#endif
- if (!base->active_timers)
- goto out;
+ raise_softirq(TIMER_SOFTIRQ);
- /* Check whether the next pending timer has expired */
- if (time_before_eq(base->next_timer, jiffies))
- raise_softirq(TIMER_SOFTIRQ);
-out:
#ifdef CONFIG_PREEMPT_RT_FULL
rt_spin_unlock_after_trylock_in_irq(&base->lock);
#endif
- /* The ; ensures that gcc won't complain in the !RT case */
- ;
}
#ifdef __ARCH_WANT_SYS_ALARM