#include <linux/init.h>
#include <linux/errno.h>
-extern int perfmon_init(struct oprofile_operations ** ops);
+extern int perfmon_init(struct oprofile_operations * ops);
extern void perfmon_exit(void);
+extern void ia64_backtrace(struct pt_regs * const regs, unsigned int depth);
-int __init oprofile_arch_init(struct oprofile_operations ** ops)
+int __init oprofile_arch_init(struct oprofile_operations * ops)
{
+ int ret = -ENODEV;
+
#ifdef CONFIG_PERFMON
- return perfmon_init(ops);
+ /* perfmon_init() can fail, but we have no way to report it */
+ ret = perfmon_init(ops);
#endif
- return -ENODEV;
+ ops->backtrace = ia64_backtrace;
+
+ return ret;
}