]> www.infradead.org Git - nvme.git/commitdiff
mm/huge_memory: mark racy access onhuge_anon_orders_always
authorRan Xiaokai <ran.xiaokai@zte.com.cn>
Wed, 15 May 2024 02:47:54 +0000 (10:47 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 4 Jul 2024 02:29:53 +0000 (19:29 -0700)
huge_anon_orders_always is accessed lockless, it is better to use the
READ_ONCE() wrapper.  This is not fixing any visible bug, hopefully this
can cease some KCSAN complains in the future.  Also do that for
huge_anon_orders_madvise.

Link: https://lkml.kernel.org/r/20240515104754889HqrahFPePOIE1UlANHVAh@zte.com.cn
Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Lu Zhongjun <lu.zhongjun@zte.com.cn>
Reviewed-by: xu xin <xu.xin16@zte.com.cn>
Cc: Yang Yang <yang.yang29@zte.com.cn>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/huge_mm.h

index 2aa986a5cd1b557206734a2e90c0844c58c981fc..088d66a546437663fecf2b75c91279df18eeb5c9 100644 (file)
@@ -134,8 +134,8 @@ static inline bool hugepage_flags_enabled(void)
         * So we don't need to look at huge_anon_orders_inherit.
         */
        return hugepage_global_enabled() ||
-              huge_anon_orders_always ||
-              huge_anon_orders_madvise;
+              READ_ONCE(huge_anon_orders_always) ||
+              READ_ONCE(huge_anon_orders_madvise);
 }
 
 static inline int highest_order(unsigned long orders)