示例#1
0
static int __init oprofile_init(void)
{
	int err;

	/* always init architecture to setup backtrace support */
	err = oprofile_arch_init(&oprofile_ops);

	timer_mode = err || timer;	/* fall back to timer mode on errors */
	if (timer_mode) {
		if (!err)
			oprofile_arch_exit();
		err = oprofile_timer_init(&oprofile_ops);
		if (err)
			return err;
	}

	err = oprofilefs_register();
	if (!err)
		return 0;

	/* failed */
	if (timer_mode)
		oprofile_timer_exit();
	else
		oprofile_arch_exit();

	return err;
}
示例#2
0
static int __init oprofile_init(void)
{
	int err;

	err = oprofile_arch_init(&oprofile_ops);
	if (err < 0 || timer) {
		printk(KERN_INFO "oprofile: using timer interrupt.\n");
		err = oprofile_timer_init(&oprofile_ops);
		if (err)
			return err;
	}
	return oprofilefs_register();
}