]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
slab: silence sparse warning with type-based partitioning
authorMarco Elver <elver@google.com>
Tue, 21 Jul 2026 09:19:21 +0000 (11:19 +0200)
committerVlastimil Babka (SUSE) <vbabka@kernel.org>
Tue, 21 Jul 2026 09:28:21 +0000 (11:28 +0200)
Sparse does not know __builtin_infer_alloc_token() and complains:

sparse: sparse: undefined identifier '__builtin_infer_alloc_token'

Fix it by using a dummy variant of __kmalloc_token() if __CHECKER__ is
defined.

Fixes: feb662d9168b ("slab: support for compiler-assisted type-based slab cache partitioning")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202607110912.nZTqfCrH-lkp@intel.com/
Signed-off-by: Marco Elver <elver@google.com>
Link: https://patch.msgid.link/20260721092005.1986693-1-elver@google.com
Acked-by: Harry Yoo (Oracle) <harry@kernel.org>
Signed-off-by: Vlastimil Babka (SUSE) <vbabka@kernel.org>
include/linux/slab.h

index 3a14df50766ab08b0e714ffbfcfe2494c77c3730..32c9f8ed7ae205f6397af0da3ce46fb3d74fefd6 100644 (file)
@@ -514,8 +514,12 @@ typedef struct { unsigned long v; } kmalloc_token_t;
 extern unsigned long random_kmalloc_seed;
 #define __kmalloc_token(...) ((kmalloc_token_t){ .v = _CODE_LOCATION_ })
 #elif defined(CONFIG_KMALLOC_PARTITION_TYPED)
+#ifdef __CHECKER__
+#define __kmalloc_token(...) ((kmalloc_token_t){ .v = 0 })
+#else /* !__CHECKER__ */
 #define __kmalloc_token(...) ((kmalloc_token_t){ .v = __builtin_infer_alloc_token(__VA_ARGS__) })
-#endif
+#endif /* __CHECKER__ */
+#endif /* CONFIG_KMALLOC_PARTITION_TYPED */
 #define DECL_TOKEN_PARAM(_token)       , kmalloc_token_t (_token)
 #define _PASS_TOKEN_PARAM(_token)      , (_token)
 #define PASS_TOKEN_PARAM(_token)       (_token)