diff options
Diffstat (limited to 'arch/sh/oprofile/common.c')
-rw-r--r-- | arch/sh/oprofile/common.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/sh/oprofile/common.c b/arch/sh/oprofile/common.c index a4d8c0c9a63c..1d97d64cb95f 100644 --- a/arch/sh/oprofile/common.c +++ b/arch/sh/oprofile/common.c @@ -27,6 +27,8 @@ static struct op_sh_model *model; static struct op_counter_config ctr[20]; +extern void sh_backtrace(struct pt_regs * const regs, unsigned int depth); + static int op_sh_setup(void) { /* Pre-compute the values to stuff in the hardware registers. */ @@ -85,6 +87,13 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) struct op_sh_model *lmodel = NULL; int ret; + /* + * Always assign the backtrace op. If the counter initialization + * fails, we fall back to the timer which will still make use of + * this. + */ + ops->backtrace = sh_backtrace; + switch (current_cpu_data.type) { /* SH-4 types */ case CPU_SH7750: |