diff options
Diffstat (limited to 'arch/mips/oprofile/common.c')
| -rw-r--r-- | arch/mips/oprofile/common.c | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c index e74732449478..a26cbe372e06 100644 --- a/arch/mips/oprofile/common.c +++ b/arch/mips/oprofile/common.c @@ -18,6 +18,7 @@  extern struct op_mips_model op_model_mipsxx_ops __weak;  extern struct op_mips_model op_model_loongson2_ops __weak; +extern struct op_mips_model op_model_loongson3_ops __weak;  static struct op_mips_model *model; @@ -104,8 +105,17 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)  	case CPU_LOONGSON2:  		lmodel = &op_model_loongson2_ops;  		break; +	case CPU_LOONGSON3: +		lmodel = &op_model_loongson3_ops; +		break;  	}; +	/* +	 * Always set the backtrace. This allows unsupported CPU types to still +	 * use timer-based oprofile. +	 */ +	ops->backtrace = op_mips_backtrace; +  	if (!lmodel)  		return -ENODEV; @@ -121,7 +131,6 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)  	ops->start		= op_mips_start;  	ops->stop		= op_mips_stop;  	ops->cpu_type		= lmodel->cpu_type; -	ops->backtrace		= op_mips_backtrace;  	printk(KERN_INFO "oprofile: using %s performance monitoring.\n",  	       lmodel->cpu_type);  |