On 01.06.2024 12:16, Nicola Vetrini wrote: > --- a/xen/arch/x86/include/asm/shared.h > +++ b/xen/arch/x86/include/asm/shared.h > @@ -76,6 +76,7 @@ static inline void arch_set_##field(struct vcpu *v, > \ > > GET_SET_SHARED(unsigned long, max_pfn) > GET_SET_SHARED(xen_pfn_t, pfn_to_mfn_frame_list_list) > +/* SAF-6-safe Rule 20.12: expansion of macro nmi_reason */ > GET_SET_SHARED(unsigned long, nmi_reason)
Before we go this route, were alternatives at least considered? Plus didn't we special-case function-like macros already, when used in situations where only object-like macros would be expanded anyway? As to alternatives: nmi_reason() is used in exactly one place. Dropping the #define and expanding the one use instead would be an option. I further wonder whether moving the #define-s past the piece of code you actually modify would also be an option (i.e. the tool then no longer complaining). Jan