diff options
Diffstat (limited to 'kernel/timer.c')
| -rw-r--r-- | kernel/timer.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index 5db5a8d26811..aeb6a54f2771 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | #include <linux/kallsyms.h> | 39 | #include <linux/kallsyms.h> |
| 40 | #include <linux/perf_event.h> | 40 | #include <linux/perf_event.h> |
| 41 | #include <linux/sched.h> | 41 | #include <linux/sched.h> |
| 42 | #include <linux/slab.h> | ||
| 42 | 43 | ||
| 43 | #include <asm/uaccess.h> | 44 | #include <asm/uaccess.h> |
| 44 | #include <asm/unistd.h> | 45 | #include <asm/unistd.h> |
| @@ -656,8 +657,6 @@ __mod_timer(struct timer_list *timer, unsigned long expires, | |||
| 656 | 657 | ||
| 657 | debug_activate(timer, expires); | 658 | debug_activate(timer, expires); |
| 658 | 659 | ||
| 659 | new_base = __get_cpu_var(tvec_bases); | ||
| 660 | |||
| 661 | cpu = smp_processor_id(); | 660 | cpu = smp_processor_id(); |
| 662 | 661 | ||
| 663 | #if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP) | 662 | #if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP) |
| @@ -882,6 +881,7 @@ int try_to_del_timer_sync(struct timer_list *timer) | |||
| 882 | if (base->running_timer == timer) | 881 | if (base->running_timer == timer) |
| 883 | goto out; | 882 | goto out; |
| 884 | 883 | ||
| 884 | timer_stats_timer_clear_start_info(timer); | ||
| 885 | ret = 0; | 885 | ret = 0; |
| 886 | if (timer_pending(timer)) { | 886 | if (timer_pending(timer)) { |
| 887 | detach_timer(timer, 1); | 887 | detach_timer(timer, 1); |
| @@ -1200,6 +1200,7 @@ void update_process_times(int user_tick) | |||
| 1200 | run_local_timers(); | 1200 | run_local_timers(); |
| 1201 | rcu_check_callbacks(cpu, user_tick); | 1201 | rcu_check_callbacks(cpu, user_tick); |
| 1202 | printk_tick(); | 1202 | printk_tick(); |
| 1203 | perf_event_do_pending(); | ||
| 1203 | scheduler_tick(); | 1204 | scheduler_tick(); |
| 1204 | run_posix_cpu_timers(p); | 1205 | run_posix_cpu_timers(p); |
| 1205 | } | 1206 | } |
| @@ -1211,8 +1212,6 @@ static void run_timer_softirq(struct softirq_action *h) | |||
| 1211 | { | 1212 | { |
| 1212 | struct tvec_base *base = __get_cpu_var(tvec_bases); | 1213 | struct tvec_base *base = __get_cpu_var(tvec_bases); |
| 1213 | 1214 | ||
| 1214 | perf_event_do_pending(); | ||
| 1215 | |||
| 1216 | hrtimer_run_pending(); | 1215 | hrtimer_run_pending(); |
| 1217 | 1216 | ||
| 1218 | if (time_after_eq(jiffies, base->timer_jiffies)) | 1217 | if (time_after_eq(jiffies, base->timer_jiffies)) |
