From: Ingo Molnar kmem_cache_free() was missing the check for freeing held locks. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton --- mm/slab.c | 1 + 1 file changed, 1 insertion(+) diff -puN mm/slab.c~lockdep-also-check-for-freed-locks-in-kmem_cache_free mm/slab.c --- a/mm/slab.c~lockdep-also-check-for-freed-locks-in-kmem_cache_free +++ a/mm/slab.c @@ -3728,6 +3728,7 @@ void kmem_cache_free(struct kmem_cache * BUG_ON(virt_to_cache(objp) != cachep); local_irq_save(flags); + debug_check_no_locks_freed(objp, obj_size(cachep)); __cache_free(cachep, objp); local_irq_restore(flags); } _