Commit cc947f2b authored by Thomas Gleixner's avatar Thomas Gleixner

timers: Make run_local_timers() static

No users outside of the timer code. Move the caller below this function to
avoid a pointless forward declaration.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 6e5a9190
...@@ -193,7 +193,6 @@ extern int try_to_del_timer_sync(struct timer_list *timer); ...@@ -193,7 +193,6 @@ extern int try_to_del_timer_sync(struct timer_list *timer);
#define del_singleshot_timer_sync(t) del_timer_sync(t) #define del_singleshot_timer_sync(t) del_timer_sync(t)
extern void init_timers(void); extern void init_timers(void);
extern void run_local_timers(void);
struct hrtimer; struct hrtimer;
extern enum hrtimer_restart it_real_fn(struct hrtimer *); extern enum hrtimer_restart it_real_fn(struct hrtimer *);
......
...@@ -1705,29 +1705,6 @@ void timer_clear_idle(void) ...@@ -1705,29 +1705,6 @@ void timer_clear_idle(void)
} }
#endif #endif
/*
* Called from the timer interrupt handler to charge one tick to the current
* process. user_tick is 1 if the tick is user time, 0 for system.
*/
void update_process_times(int user_tick)
{
struct task_struct *p = current;
PRANDOM_ADD_NOISE(jiffies, user_tick, p, 0);
/* Note: this timer irq context must be accounted for as well. */
account_process_tick(p, user_tick);
run_local_timers();
rcu_sched_clock_irq(user_tick);
#ifdef CONFIG_IRQ_WORK
if (in_irq())
irq_work_tick();
#endif
scheduler_tick();
if (IS_ENABLED(CONFIG_POSIX_TIMERS))
run_posix_cpu_timers();
}
/** /**
* __run_timers - run all expired timers (if any) on this CPU. * __run_timers - run all expired timers (if any) on this CPU.
* @base: the timer vector to be processed. * @base: the timer vector to be processed.
...@@ -1777,7 +1754,7 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) ...@@ -1777,7 +1754,7 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h)
/* /*
* Called by the local, per-CPU timer interrupt on SMP. * Called by the local, per-CPU timer interrupt on SMP.
*/ */
void run_local_timers(void) static void run_local_timers(void)
{ {
struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]);
...@@ -1794,6 +1771,29 @@ void run_local_timers(void) ...@@ -1794,6 +1771,29 @@ void run_local_timers(void)
raise_softirq(TIMER_SOFTIRQ); raise_softirq(TIMER_SOFTIRQ);
} }
/*
* Called from the timer interrupt handler to charge one tick to the current
* process. user_tick is 1 if the tick is user time, 0 for system.
*/
void update_process_times(int user_tick)
{
struct task_struct *p = current;
PRANDOM_ADD_NOISE(jiffies, user_tick, p, 0);
/* Note: this timer irq context must be accounted for as well. */
account_process_tick(p, user_tick);
run_local_timers();
rcu_sched_clock_irq(user_tick);
#ifdef CONFIG_IRQ_WORK
if (in_irq())
irq_work_tick();
#endif
scheduler_tick();
if (IS_ENABLED(CONFIG_POSIX_TIMERS))
run_posix_cpu_timers();
}
/* /*
* Since schedule_timeout()'s timer is defined on the stack, it must store * Since schedule_timeout()'s timer is defined on the stack, it must store
* the target task on the stack as well. * the target task on the stack as well.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment