There are macros in kernel.h that can be used outside of that header. Split them to args.h and replace open coded variants.
Test compiled with `make allmodconfig` for x86_64. Test cross-compiled with `make multi_v7_defconfig` for arm.
(Note that positive diff statistics is due to documentation being updated.)
In v4: - fixed compilation error on arm (LKP, Stephen)
In v3: - split to a series of patches - fixed build issue on `make allmodconfig` for x86_64 (Andrew)
In v2: - converted existing users at the same time (Andrew, Rasmus) - documented how it does work (Andrew, Rasmus)
Andy Shevchenko (4): kernel.h: Split out COUNT_ARGS() and CONCATENATE() to args.h x86/asm: Replace custom COUNT_ARGS() & CONCATENATE() implementations arm64: smccc: Replace custom COUNT_ARGS() & CONCATENATE() implementations genetlink: Replace custom CONCATENATE() implementation
arch/x86/include/asm/rmwcc.h | 11 ++--- include/kunit/test.h | 1 + include/linux/args.h | 28 +++++++++++++ include/linux/arm-smccc.h | 69 ++++++++++++++----------------- include/linux/genl_magic_func.h | 27 ++++++------ include/linux/genl_magic_struct.h | 8 ++-- include/linux/kernel.h | 7 ---- include/linux/pci.h | 2 +- include/trace/bpf_probe.h | 2 + 9 files changed, 84 insertions(+), 71 deletions(-) create mode 100644 include/linux/args.h