]> git.ipfire.org Git - thirdparty/linux.git/commit
default_gfp(): avoid using the "newfangled" __VA_OPT__ trick
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 23 Feb 2026 17:33:08 +0000 (09:33 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 23 Feb 2026 17:33:08 +0000 (09:33 -0800)
commit551d44200152cb26f75d2ef990aeb6185b7e37fd
treefc52230991e1105774017711e6fb51ff3298491e
parent6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
default_gfp(): avoid using the "newfangled" __VA_OPT__ trick

The default_gfp() helper that I added is not wrong, but it turns out
that it causes unnecessary headaches for 'sparse' which doesn't support
the use of __VA_OPT__ (introduced in C++20 and C23, and supported by gcc
and clang for a long time).

We do already use __VA_OPT__ in some other cases in the kernel (drm/xe
and btrfs), but it has been fairly limited.  Now it triggers for pretty
much everything, and sparse ends up not working at all.

We can use the traditional gcc ',##__VA_ARGS__' syntax instead: it may
not be the "C standard" way and is slightly less natural in this
context, but it is the traditional model for this and avoids the sparse
problem.

Reported-and-tested-by: Ricardo Ribalda <ribalda@chromium.org>
Reported-and-tested-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Reported-by: Ben Dooks <ben.dooks@codethink.co.uk>
Fixes: e19e1b480ac7 ("add default_gfp() helper macro and use it in the new *alloc_obj() helpers")
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/gfp.h