From 844776cb65a77ef27bfba2220e285940b714ae4e Mon Sep 17 00:00:00 2001 From: linke li Date: Sat, 27 Apr 2024 16:51:54 +0800 Subject: [PATCH] mm/slub: mark racy access on slab->freelist In deactivate_slab(), slab->freelist can be changed concurrently. Mark data race on slab->freelist as benign using READ_ONCE. This patch is aimed at reducing the number of benign races reported by KCSAN in order to focus future debugging effort on harmful races. Signed-off-by: linke li Signed-off-by: Vlastimil Babka --- mm/slub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/slub.c b/mm/slub.c index 3aa12b9b323d..88d3dcdfa45d 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; }