diff --git a/mm/slub.c b/mm/slub.c index 3aa12b9b323d9..88d3dcdfa45d8 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2806,7 +2806,7 @@ static void deactivate_slab(struct kmem_cache *s, struct slab *slab, struct slab new; struct slab old; - if (slab->freelist) { + if (READ_ONCE(slab->freelist)) { stat(s, DEACTIVATE_REMOTE_FREES); tail = DEACTIVATE_TO_TAIL; }