diff --git a/mm/slub.c b/mm/slub.c index c5766e504e73..c4a9b8901576 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2554,14 +2554,10 @@ static void flush_all(struct kmem_cache *s) static int slub_cpu_dead(unsigned int cpu) { struct kmem_cache *s; - unsigned long flags; mutex_lock(&slab_mutex); - list_for_each_entry(s, &slab_caches, list) { - local_irq_save(flags); + list_for_each_entry(s, &slab_caches, list) __flush_cpu_slab(s, cpu); - local_irq_restore(flags); - } mutex_unlock(&slab_mutex); return 0; }