Fix race between cat /proc/slab_allocators and rmmod
[deliverable/linux.git] / mm / slab.c
index 1115e2065bfcbacb5d2d47fcb101c86d0c932661..acda7e2d66e4e9f4f6b7513a7c00cf91bf0873c4 100644 (file)
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -4432,16 +4432,12 @@ static void handle_slab(unsigned long *n, struct kmem_cache *c, struct slab *s)
 static void show_symbol(struct seq_file *m, unsigned long address)
 {
 #ifdef CONFIG_KALLSYMS
-       char *modname;
-       const char *name;
        unsigned long offset, size;
-       char namebuf[KSYM_NAME_LEN+1];
-
-       name = kallsyms_lookup(address, &size, &offset, &modname, namebuf);
+       char modname[MODULE_NAME_LEN + 1], name[KSYM_NAME_LEN + 1];
 
-       if (name) {
+       if (lookup_symbol_attrs(address, &size, &offset, modname, name) == 0) {
                seq_printf(m, "%s+%#lx/%#lx", name, offset, size);
-               if (modname)
+               if (modname[0])
                        seq_printf(m, " [%s]", modname);
                return;
        }
This page took 0.049562 seconds and 5 git commands to generate.