Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

genetlink: replace custom CONCATENATE() implementation

Replace custom implementation of the macros from args.h.

Link: https://lkml.kernel.org/r/20230718211147.18647-5-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Borislav Petkov (AMD) <bp@alien8.de>
Cc: Brendan Higgins <brendan.higgins@linux.dev>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Daniel Latypov <dlatypov@google.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Gow <davidgow@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Andy Shevchenko and committed by
Andrew Morton
2e106e56 90e3e185

+17 -18
+14 -13
include/linux/genl_magic_func.h
··· 2 2 #ifndef GENL_MAGIC_FUNC_H 3 3 #define GENL_MAGIC_FUNC_H 4 4 5 + #include <linux/args.h> 5 6 #include <linux/build_bug.h> 6 7 #include <linux/genl_magic_struct.h> 7 8 ··· 24 23 #define GENL_struct(tag_name, tag_number, s_name, s_fields) \ 25 24 [tag_name] = { .type = NLA_NESTED }, 26 25 27 - static struct nla_policy CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy)[] = { 26 + static struct nla_policy CONCATENATE(GENL_MAGIC_FAMILY, _tla_nl_policy)[] = { 28 27 #include GENL_MAGIC_INCLUDE_FILE 29 28 }; 30 29 ··· 210 209 * Magic: define op number to op name mapping {{{1 211 210 * {{{2 212 211 */ 213 - static const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd) 212 + static const char *CONCATENATE(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd) 214 213 { 215 214 switch (cmd) { 216 215 #undef GENL_op ··· 236 235 .cmd = op_name, \ 237 236 }, 238 237 239 - #define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops) 238 + #define ZZZ_genl_ops CONCATENATE(GENL_MAGIC_FAMILY, _genl_ops) 240 239 static struct genl_ops ZZZ_genl_ops[] __read_mostly = { 241 240 #include GENL_MAGIC_INCLUDE_FILE 242 241 }; ··· 249 248 * and provide register/unregister functions. 250 249 * {{{2 251 250 */ 252 - #define ZZZ_genl_family CONCAT_(GENL_MAGIC_FAMILY, _genl_family) 251 + #define ZZZ_genl_family CONCATENATE(GENL_MAGIC_FAMILY, _genl_family) 253 252 static struct genl_family ZZZ_genl_family; 254 253 /* 255 254 * Magic: define multicast groups 256 255 * Magic: define multicast group registration helper 257 256 */ 258 - #define ZZZ_genl_mcgrps CONCAT_(GENL_MAGIC_FAMILY, _genl_mcgrps) 257 + #define ZZZ_genl_mcgrps CONCATENATE(GENL_MAGIC_FAMILY, _genl_mcgrps) 259 258 static const struct genl_multicast_group ZZZ_genl_mcgrps[] = { 260 259 #undef GENL_mc_group 261 260 #define GENL_mc_group(group) { .name = #group, }, 262 261 #include GENL_MAGIC_INCLUDE_FILE 263 262 }; 264 263 265 - enum CONCAT_(GENL_MAGIC_FAMILY, group_ids) { 264 + enum CONCATENATE(GENL_MAGIC_FAMILY, group_ids) { 266 265 #undef GENL_mc_group 267 - #define GENL_mc_group(group) CONCAT_(GENL_MAGIC_FAMILY, _group_ ## group), 266 + #define GENL_mc_group(group) CONCATENATE(GENL_MAGIC_FAMILY, _group_ ## group), 268 267 #include GENL_MAGIC_INCLUDE_FILE 269 268 }; 270 269 271 270 #undef GENL_mc_group 272 271 #define GENL_mc_group(group) \ 273 - static int CONCAT_(GENL_MAGIC_FAMILY, _genl_multicast_ ## group)( \ 272 + static int CONCATENATE(GENL_MAGIC_FAMILY, _genl_multicast_ ## group)( \ 274 273 struct sk_buff *skb, gfp_t flags) \ 275 274 { \ 276 275 unsigned int group_id = \ 277 - CONCAT_(GENL_MAGIC_FAMILY, _group_ ## group); \ 276 + CONCATENATE(GENL_MAGIC_FAMILY, _group_ ## group); \ 278 277 return genlmsg_multicast(&ZZZ_genl_family, skb, 0, \ 279 278 group_id, flags); \ 280 279 } ··· 290 289 #ifdef GENL_MAGIC_FAMILY_HDRSZ 291 290 .hdrsize = NLA_ALIGN(GENL_MAGIC_FAMILY_HDRSZ), 292 291 #endif 293 - .maxattr = ARRAY_SIZE(CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy))-1, 294 - .policy = CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy), 292 + .maxattr = ARRAY_SIZE(CONCATENATE(GENL_MAGIC_FAMILY, _tla_nl_policy))-1, 293 + .policy = CONCATENATE(GENL_MAGIC_FAMILY, _tla_nl_policy), 295 294 .ops = ZZZ_genl_ops, 296 295 .n_ops = ARRAY_SIZE(ZZZ_genl_ops), 297 296 .mcgrps = ZZZ_genl_mcgrps, ··· 300 299 .module = THIS_MODULE, 301 300 }; 302 301 303 - int CONCAT_(GENL_MAGIC_FAMILY, _genl_register)(void) 302 + int CONCATENATE(GENL_MAGIC_FAMILY, _genl_register)(void) 304 303 { 305 304 return genl_register_family(&ZZZ_genl_family); 306 305 } 307 306 308 - void CONCAT_(GENL_MAGIC_FAMILY, _genl_unregister)(void) 307 + void CONCATENATE(GENL_MAGIC_FAMILY, _genl_unregister)(void) 309 308 { 310 309 genl_unregister_family(&ZZZ_genl_family); 311 310 }
+3 -5
include/linux/genl_magic_struct.h
··· 14 14 # error "you need to define GENL_MAGIC_INCLUDE_FILE before inclusion" 15 15 #endif 16 16 17 + #include <linux/args.h> 17 18 #include <linux/genetlink.h> 18 19 #include <linux/types.h> 19 20 20 - #define CONCAT__(a,b) a ## b 21 - #define CONCAT_(a,b) CONCAT__(a,b) 22 - 23 - extern int CONCAT_(GENL_MAGIC_FAMILY, _genl_register)(void); 24 - extern void CONCAT_(GENL_MAGIC_FAMILY, _genl_unregister)(void); 21 + extern int CONCATENATE(GENL_MAGIC_FAMILY, _genl_register)(void); 22 + extern void CONCATENATE(GENL_MAGIC_FAMILY, _genl_unregister)(void); 25 23 26 24 /* 27 25 * Extension of genl attribute validation policies {{{2