From: Vlastimil Babka Date: Mon, 23 Aug 2021 23:59:00 +0000 (+1000) Subject: mm, slub: discard slabs in unfreeze_partials() without irqs disabled X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c686ea1bcf84512d555f6aafbaf54631b023574c;p=users%2Fjedix%2Flinux-maple.git mm, slub: discard slabs in unfreeze_partials() without irqs disabled No need for disabled irqs when discarding slabs, so restore them before discarding. Link: https://lkml.kernel.org/r/20210805152000.12817-24-vbabka@suse.cz Signed-off-by: Vlastimil Babka Cc: Christoph Lameter Cc: David Rientjes Cc: Jann Horn Cc: Jesper Dangaard Brouer Cc: Joonsoo Kim Cc: Mel Gorman Cc: Mike Galbraith Cc: Pekka Enberg Cc: Sebastian Andrzej Siewior Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Stephen Rothwell --- diff --git a/mm/slub.c b/mm/slub.c index b1c120d3d461..240b22328212 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2392,6 +2392,8 @@ static void unfreeze_partials(struct kmem_cache *s, if (n) spin_unlock(&n->list_lock); + local_irq_restore(flags); + while (discard_page) { page = discard_page; discard_page = discard_page->next; @@ -2401,7 +2403,6 @@ static void unfreeze_partials(struct kmem_cache *s, stat(s, FREE_SLAB); } - local_irq_restore(flags); #endif /* CONFIG_SLUB_CPU_PARTIAL */ }