diff options
Diffstat (limited to 'kernel/profile.c')
-rw-r--r-- | kernel/profile.c | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/kernel/profile.c b/kernel/profile.c index 1f391819c42f..dc3384ee874e 100644 --- a/kernel/profile.c +++ b/kernel/profile.c | |||
@@ -37,9 +37,6 @@ struct profile_hit { | |||
37 | #define NR_PROFILE_HIT (PAGE_SIZE/sizeof(struct profile_hit)) | 37 | #define NR_PROFILE_HIT (PAGE_SIZE/sizeof(struct profile_hit)) |
38 | #define NR_PROFILE_GRP (NR_PROFILE_HIT/PROFILE_GRPSZ) | 38 | #define NR_PROFILE_GRP (NR_PROFILE_HIT/PROFILE_GRPSZ) |
39 | 39 | ||
40 | /* Oprofile timer tick hook */ | ||
41 | static int (*timer_hook)(struct pt_regs *) __read_mostly; | ||
42 | |||
43 | static atomic_t *prof_buffer; | 40 | static atomic_t *prof_buffer; |
44 | static unsigned long prof_len, prof_shift; | 41 | static unsigned long prof_len, prof_shift; |
45 | 42 | ||
@@ -208,25 +205,6 @@ int profile_event_unregister(enum profile_type type, struct notifier_block *n) | |||
208 | } | 205 | } |
209 | EXPORT_SYMBOL_GPL(profile_event_unregister); | 206 | EXPORT_SYMBOL_GPL(profile_event_unregister); |
210 | 207 | ||
211 | int register_timer_hook(int (*hook)(struct pt_regs *)) | ||
212 | { | ||
213 | if (timer_hook) | ||
214 | return -EBUSY; | ||
215 | timer_hook = hook; | ||
216 | return 0; | ||
217 | } | ||
218 | EXPORT_SYMBOL_GPL(register_timer_hook); | ||
219 | |||
220 | void unregister_timer_hook(int (*hook)(struct pt_regs *)) | ||
221 | { | ||
222 | WARN_ON(hook != timer_hook); | ||
223 | timer_hook = NULL; | ||
224 | /* make sure all CPUs see the NULL hook */ | ||
225 | synchronize_sched(); /* Allow ongoing interrupts to complete. */ | ||
226 | } | ||
227 | EXPORT_SYMBOL_GPL(unregister_timer_hook); | ||
228 | |||
229 | |||
230 | #ifdef CONFIG_SMP | 208 | #ifdef CONFIG_SMP |
231 | /* | 209 | /* |
232 | * Each cpu has a pair of open-addressed hashtables for pending | 210 | * Each cpu has a pair of open-addressed hashtables for pending |
@@ -436,8 +414,6 @@ void profile_tick(int type) | |||
436 | { | 414 | { |
437 | struct pt_regs *regs = get_irq_regs(); | 415 | struct pt_regs *regs = get_irq_regs(); |
438 | 416 | ||
439 | if (type == CPU_PROFILING && timer_hook) | ||
440 | timer_hook(regs); | ||
441 | if (!user_mode(regs) && prof_cpu_mask != NULL && | 417 | if (!user_mode(regs) && prof_cpu_mask != NULL && |
442 | cpumask_test_cpu(smp_processor_id(), prof_cpu_mask)) | 418 | cpumask_test_cpu(smp_processor_id(), prof_cpu_mask)) |
443 | profile_hit(type, (void *)profile_pc(regs)); | 419 | profile_hit(type, (void *)profile_pc(regs)); |