summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/kallsyms.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index 1a5dce8f9346..9bbd04092365 100644
--- a/include/linux/kallsyms.h
+++ b/include/linux/kallsyms.h
@@ -47,6 +47,16 @@ __attribute__((format(printf,1,2)));
static inline void __check_printsym_format(const char *fmt, ...)
{
}
+/* ia64 and ppc64 use function descriptors, which contain the real address */
+#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
+#define print_fn_descriptor_symbol(fmt, addr) \
+do { \
+ unsigned long *__faddr = (unsigned long*) addr; \
+ print_symbol(fmt, __faddr[0]); \
+} while (0)
+#else
+#define print_fn_descriptor_symbol(fmt, addr) print_symbol(fmt, addr)
+#endif
#define print_symbol(fmt, addr) \
do { \