/* * local version of hrtimer_peek_ahead_timers() called with interrupts * disabled. */ static inline void __hrtimer_peek_ahead_timers(void) { struct tick_device *td; if (!hrtimer_hres_active()) return; td = this_cpu_ptr(&tick_cpu_device); if (td && td->evtdev) hrtimer_interrupt(td->evtdev); }
/* * local version of hrtimer_peek_ahead_timers() called with interrupts * disabled. */ static void __hrtimer_peek_ahead_timers(void) { struct tick_device *td; if (!hrtimer_hres_active()) return; td = &__get_cpu_var(tick_cpu_device); if (td && td->evtdev) hrtimer_interrupt(td->evtdev); }
/** * hrtimer_peek_ahead_timers -- run soft-expired timers now * * hrtimer_peek_ahead_timers will peek at the timer queue of * the current cpu and check if there are any timers for which * the soft expires time has passed. If any such timers exist, * they are run immediately and then removed from the timer queue. * */ void hrtimer_peek_ahead_timers(void) { struct tick_device *td; unsigned long flags; if (!hrtimer_hres_active()) return; local_irq_save(flags); td = &__get_cpu_var(tick_cpu_device); if (td && td->evtdev) hrtimer_interrupt(td->evtdev); local_irq_restore(flags); }