On 08.01.2024 12:37, Julien Grall wrote: > On 08/01/2024 11:31, Jan Beulich wrote: >> Address the TODO regarding first_valid_mfn by making the variable static >> when NUMA=y, thus also addressing a Misra C:2012 rule 8.4 concern (on >> x86). >> >> Signed-off-by: Jan Beulich <jbeul...@suse.com> >> --- >> Julien suggests something like >> >> STATIC_IF(CONFIG_NUMA) unsigned long first_valid_mfn; >> >> but I view this as non-scalable (or at least I can't see how to >> implement such in a scalabale way) and hence undesirable to introduce. > > I don't really see the scalability problem. Can you explain a bit more?
Well, when seeing your original suggestion, I first considered it quite reasonable. But when thinking how to implement it, I couldn't see what #define STATIC_IF(cfg) should expand to. That's simply because a macro body cannot itself have pre-processor directives. Hence all I could think of was #ifdef CONFIG_NUMA # define static_if_CONFIG_NUMA static #else # define static_if_CONFIG_NUMA #endif #define STATIC_IF(cfg) static_if_ ## cfg And I think it is easy to see how this wouldn't scale across CONFIG_xyz. Plus that that point STATIC_IF() itself would be pretty much redundant. But maybe I'm simply overlooking the obvious ... Jan