Index: linux-2.6.21-rc5/include/linux/kallsyms.h =================================================================== --- linux-2.6.21-rc5.orig/include/linux/kallsyms.h 2007-03-26 16:16:21.000000000 -0700 +++ linux-2.6.21-rc5/include/linux/kallsyms.h 2007-03-28 18:52:55.000000000 -0700 @@ -5,6 +5,7 @@ #ifndef _LINUX_KALLSYMS_H #define _LINUX_KALLSYMS_H +#include #define KSYM_NAME_LEN 127 @@ -75,6 +76,25 @@ static inline void print_symbol(const ch __builtin_extract_return_addr((void *)addr)); } +/* From mm */ +static inline int sprint_symbol(char *buffer, unsigned long address) +{ + char *modname; + const char *name; + unsigned long offset, size; + char namebuf[KSYM_NAME_LEN+1]; + + name = kallsyms_lookup(address, &size, &offset, &modname, namebuf); + if (!name) + return sprintf(buffer, "0x%lx", address); + + if (modname) + return sprintf(buffer, "%s+%#lx/%#lx [%s]", name, offset, + size, modname); + + return sprintf(buffer, "%s+%#lx/%#lx", name, offset, size); +} + #ifndef CONFIG_64BIT #define print_ip_sym(ip) \ do { \