aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/profile.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-10-05 19:32:01 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-05 19:32:01 -0400
commit44aefd2706bb6f5b65ba2c38cd89e7609e2b43d3 (patch)
tree93824f573767da634fbc82c388b6d33cc454212b /kernel/profile.c
parentc1a26e7d40fb814716950122353a1a556844286b (diff)
parent7d12e780e003f93433d49ce78cfedf4b4c52adc5 (diff)
Merge git://git.infradead.org/~dhowells/irq-2.6
* git://git.infradead.org/~dhowells/irq-2.6: IRQ: Maintain regs pointer globally rather than passing to IRQ handlers IRQ: Typedef the IRQ handler function type IRQ: Typedef the IRQ flow handler function type
Diffstat (limited to 'kernel/profile.c')
-rw-r--r--kernel/profile.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/profile.c b/kernel/profile.c
index fb660c7d35ba..857300a2afec 100644
--- a/kernel/profile.c
+++ b/kernel/profile.c
@@ -25,6 +25,7 @@
25#include <linux/mutex.h> 25#include <linux/mutex.h>
26#include <asm/sections.h> 26#include <asm/sections.h>
27#include <asm/semaphore.h> 27#include <asm/semaphore.h>
28#include <asm/irq_regs.h>
28 29
29struct profile_hit { 30struct profile_hit {
30 u32 pc, hits; 31 u32 pc, hits;
@@ -366,8 +367,10 @@ void profile_hit(int type, void *__pc)
366} 367}
367#endif /* !CONFIG_SMP */ 368#endif /* !CONFIG_SMP */
368 369
369void profile_tick(int type, struct pt_regs *regs) 370void profile_tick(int type)
370{ 371{
372 struct pt_regs *regs = get_irq_regs();
373
371 if (type == CPU_PROFILING && timer_hook) 374 if (type == CPU_PROFILING && timer_hook)
372 timer_hook(regs); 375 timer_hook(regs);
373 if (!user_mode(regs) && cpu_isset(smp_processor_id(), prof_cpu_mask)) 376 if (!user_mode(regs) && cpu_isset(smp_processor_id(), prof_cpu_mask))