X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=kernel%2Fkallsyms.c;h=7b8b0f21a5b119356d4609e97b96b1e920be8a1a;hb=483b4ee60edbefdfbff0dd538fb81f368d9e7c0d;hp=5072cf1685a27ca9fc78986e3438ab53baa882a4;hpb=7968b3d9a673e922ab980b2616945e63a52d88fe;p=safe%2Fjmp%2Flinux-2.6 diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 5072cf1..7b8b0f2 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -304,17 +304,24 @@ int sprint_symbol(char *buffer, unsigned long address) char *modname; const char *name; unsigned long offset, size; - char namebuf[KSYM_NAME_LEN]; + int len; - name = kallsyms_lookup(address, &size, &offset, &modname, namebuf); + name = kallsyms_lookup(address, &size, &offset, &modname, buffer); if (!name) return sprintf(buffer, "0x%lx", address); + if (name != buffer) + strcpy(buffer, name); + len = strlen(buffer); + buffer += len; + if (modname) - return sprintf(buffer, "%s+%#lx/%#lx [%s]", name, offset, - size, modname); + len += sprintf(buffer, "+%#lx/%#lx [%s]", + offset, size, modname); else - return sprintf(buffer, "%s+%#lx/%#lx", name, offset, size); + len += sprintf(buffer, "+%#lx/%#lx", offset, size); + + return len; } /* Look up a kernel symbol and print it to the kernel messages. */