diff mbox series

[v3,04/35] mm, slub: don't disable irq for debug_check_no_locks_freed()

Message ID 20210729132132.19691-5-vbabka@suse.cz (mailing list archive)
State New
Headers show
Series SLUB: reduce irq disabled scope and make it RT compatible | expand

Commit Message

Vlastimil Babka July 29, 2021, 1:21 p.m. UTC
In slab_free_hook() we disable irqs around the debug_check_no_locks_freed()
call, which is unnecessary, as irqs are already being disabled inside the call.
This seems to be leftover from the past where there were more calls inside the
irq disabled sections. Remove the irq disable/enable operations.

Mel noted:
> Looks like it was needed for kmemcheck which went away back in 4.15

Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
 mm/slub.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)
diff mbox series


diff --git a/mm/slub.c b/mm/slub.c
index 743c6b7f8bb1..0f08b64e2fd1 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1588,20 +1588,8 @@  static __always_inline bool slab_free_hook(struct kmem_cache *s,
 	kmemleak_free_recursive(x, s->flags);
-	/*
-	 * Trouble is that we may no longer disable interrupts in the fast path
-	 * So in order to make the debug calls that expect irqs to be
-	 * disabled we need to disable interrupts temporarily.
-	 */
-	{
-		unsigned long flags;
+	debug_check_no_locks_freed(x, s->object_size);
-		local_irq_save(flags);
-		debug_check_no_locks_freed(x, s->object_size);
-		local_irq_restore(flags);
-	}
 	if (!(s->flags & SLAB_DEBUG_OBJECTS))
 		debug_check_no_obj_freed(x, s->object_size);