]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - kernel/lockdep.c
lockdep: fix kernel crash on module unload
[karo-tx-linux.git] / kernel / lockdep.c
index 4335f12a27c6367e8e264a1128050ea3df6e8415..e2c07ece367d1f9793f68c21a03a80701a09509f 100644 (file)
@@ -2932,7 +2932,7 @@ static void zap_class(struct lock_class *class)
 
 }
 
-static inline int within(void *addr, void *start, unsigned long size)
+static inline int within(const void *addr, void *start, unsigned long size)
 {
        return addr >= start && addr < start + size;
 }
@@ -2955,9 +2955,12 @@ void lockdep_free_key_range(void *start, unsigned long size)
                head = classhash_table + i;
                if (list_empty(head))
                        continue;
-               list_for_each_entry_safe(class, next, head, hash_entry)
+               list_for_each_entry_safe(class, next, head, hash_entry) {
                        if (within(class->key, start, size))
                                zap_class(class);
+                       else if (within(class->name, start, size))
+                               zap_class(class);
+               }
        }
 
        if (locked)