diff --git a/mm/slab.c b/mm/slab.c index 807d86c769088681b47f41c0cc0a721307bd16c1..1880d482a0cbeb0174c9a55d45b842ab2d36685f 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -3879,7 +3879,12 @@ static int __do_tune_cpucache(struct kmem_cache *cachep, int limit, prev = cachep->cpu_cache; cachep->cpu_cache = cpu_cache; - kick_all_cpus_sync(); + /* + * Without a previous cpu_cache there's no need to synchronize remote + * cpus, so skip the IPIs. + */ + if (prev) + kick_all_cpus_sync(); check_irq_on(); cachep->batchcount = batchcount;