diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-12-09 01:14:38 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-12-09 01:14:38 -0500 |
commit | bcd6acd51f3d4d1ada201e9bc5c40a31d6d80c71 (patch) | |
tree | 2f6dffd2d3e4dd67355a224de7e7a960335a92fd /arch/powerpc/kernel/time.c | |
parent | 11c34c7deaeeebcee342cbc35e1bb2a6711b2431 (diff) | |
parent | 3ff6a468b45b5dfeb0e903e56f4eb27d34b2437c (diff) |
Merge commit 'origin/master' into next
Conflicts:
include/linux/kvm.h
Diffstat (limited to 'arch/powerpc/kernel/time.c')
-rw-r--r-- | arch/powerpc/kernel/time.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 6c9e20898fa7..e9af16cc7c0c 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -54,6 +54,7 @@ | |||
54 | #include <linux/irq.h> | 54 | #include <linux/irq.h> |
55 | #include <linux/delay.h> | 55 | #include <linux/delay.h> |
56 | #include <linux/perf_event.h> | 56 | #include <linux/perf_event.h> |
57 | #include <asm/trace.h> | ||
57 | 58 | ||
58 | #include <asm/io.h> | 59 | #include <asm/io.h> |
59 | #include <asm/processor.h> | 60 | #include <asm/processor.h> |
@@ -572,6 +573,8 @@ void timer_interrupt(struct pt_regs * regs) | |||
572 | struct clock_event_device *evt = &decrementer->event; | 573 | struct clock_event_device *evt = &decrementer->event; |
573 | u64 now; | 574 | u64 now; |
574 | 575 | ||
576 | trace_timer_interrupt_entry(regs); | ||
577 | |||
575 | /* Ensure a positive value is written to the decrementer, or else | 578 | /* Ensure a positive value is written to the decrementer, or else |
576 | * some CPUs will continuue to take decrementer exceptions */ | 579 | * some CPUs will continuue to take decrementer exceptions */ |
577 | set_dec(DECREMENTER_MAX); | 580 | set_dec(DECREMENTER_MAX); |
@@ -591,6 +594,7 @@ void timer_interrupt(struct pt_regs * regs) | |||
591 | now = decrementer->next_tb - now; | 594 | now = decrementer->next_tb - now; |
592 | if (now <= DECREMENTER_MAX) | 595 | if (now <= DECREMENTER_MAX) |
593 | set_dec((int)now); | 596 | set_dec((int)now); |
597 | trace_timer_interrupt_exit(regs); | ||
594 | return; | 598 | return; |
595 | } | 599 | } |
596 | old_regs = set_irq_regs(regs); | 600 | old_regs = set_irq_regs(regs); |
@@ -621,6 +625,8 @@ void timer_interrupt(struct pt_regs * regs) | |||
621 | 625 | ||
622 | irq_exit(); | 626 | irq_exit(); |
623 | set_irq_regs(old_regs); | 627 | set_irq_regs(old_regs); |
628 | |||
629 | trace_timer_interrupt_exit(regs); | ||
624 | } | 630 | } |
625 | 631 | ||
626 | void wakeup_decrementer(void) | 632 | void wakeup_decrementer(void) |