diff options
author | Graf Yang <graf.yang@analog.com> | 2009-01-07 23:14:39 +0800 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2009-01-07 23:14:39 +0800 |
commit | f994607a2e118aedf1116a58ecd16126dbb83d28 (patch) | |
tree | 2b1764e2a037c904aa1358a54852eeb6e349cf6f /arch/blackfin/mach-common | |
parent | 6f985294f7df30c0caa80a795ca10fb6f8466702 (diff) |
Blackfin arch: get oprofile work for user space
Signed-off-by: Graf Yang <graf.yang@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin/mach-common')
-rw-r--r-- | arch/blackfin/mach-common/interrupt.S | 12 | ||||
-rw-r--r-- | arch/blackfin/mach-common/irqpanic.c | 4 |
2 files changed, 9 insertions, 7 deletions
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S index 4a2ec7a9675..2604b532897 100644 --- a/arch/blackfin/mach-common/interrupt.S +++ b/arch/blackfin/mach-common/interrupt.S @@ -152,6 +152,12 @@ ENTRY(_evt_ivhw) 1: #endif + # We are going to dump something out, so make sure we print IPEND properly + p2.l = lo(IPEND); + p2.h = hi(IPEND); + r0 = [p2]; + [sp + PT_IPEND] = r0; + #ifdef CONFIG_HARDWARE_PM r7 = [sp + PT_SEQSTAT]; r7 = r7 >>> 0xe; @@ -161,11 +167,6 @@ ENTRY(_evt_ivhw) cc = r7 == r5; if cc jump .Lcall_do_ovf; /* deal with performance counter overflow */ #endif - # We are going to dump something out, so make sure we print IPEND properly - p2.l = lo(IPEND); - p2.h = hi(IPEND); - r0 = [p2]; - [sp + PT_IPEND] = r0; /* set the EXCAUSE to HWERR for trap_c */ r0 = [sp + PT_SEQSTAT]; @@ -196,6 +197,7 @@ ENTRY(_evt_ivhw) #ifdef CONFIG_HARDWARE_PM .Lcall_do_ovf: + R0 = SP; SP += -12; call _pm_overflow; SP += 12; diff --git a/arch/blackfin/mach-common/irqpanic.c b/arch/blackfin/mach-common/irqpanic.c index 606ded9ff4e..7b69413c155 100644 --- a/arch/blackfin/mach-common/irqpanic.c +++ b/arch/blackfin/mach-common/irqpanic.c @@ -139,8 +139,8 @@ asmlinkage void irq_panic(int reason, struct pt_regs *regs) /* * call the handler of Performance overflow */ -asmlinkage void pm_overflow(int irq, struct pt_regs *regs) +asmlinkage void pm_overflow(struct pt_regs *regs) { - pm_overflow_handler(irq, regs); + pm_overflow_handler(regs); } #endif |