Re: [PATCH] x86: coco: mark cc_mask as __maybe_unused

Borislav Petkov
2025-03-05T22:17:27Z

On Wed, Mar 05, 2025 at 11:44:34AM +0100, Ingo Molnar wrote:
>
> * Arnd Bergmann <arnd@kernel.org> wrote:
>
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > When extra warnings are enabled, the cc_mask definition in asm/coco.h
> > causes a build failure with gcc:
> >
> > arch/x86/include/asm/coco.h:28:18: error: 'cc_mask' defined but not used [-Werror=unused-const-variable=]
> > 28 | static const u64 cc_mask = 0;
> >
> > Mark this one as __maybe_unused.
> >
> > Fixes: a0a8d15a798b ("x86/tdx: Preserve shared bit on mprotect()")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> > arch/x86/include/asm/coco.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/include/asm/coco.h b/arch/x86/include/asm/coco.h
> > index aa6c8f8ca958..9e9204cfca6f 100644
> > --- a/arch/x86/include/asm/coco.h
> > +++ b/arch/x86/include/asm/coco.h
> > @@ -25,7 +25,7 @@ u64 cc_mkdec(u64 val);
> > void cc_random_init(void);
> > #else
> > #define cc_vendor (CC_VENDOR_NONE)
> > -static const u64 cc_mask = 0;
> > +static const __maybe_unused u64 cc_mask = 0;
>
> So I detest __maybe_unused with a vengeance: the 'maybe' unnecessarily
> inserts uncertainty & probability language into the text, while there's
> nothing uncertain about this interface or the code. Why cannot the
> compiler figure it out?
>
> Anyway, I'd suggest we change direct usage of cc_mask to a
> get_cc_mask() inline function instead, this will resolve the warning,
> plus it avoids some messy looking variable shadowing in tdx.c AFAICS:
>
> arch/x86/coco/tdx/tdx.c:static void tdx_setup(u64 *cc_mask)

Touch ~17 spots:

$ git grep -w cc_mask arch/x86 | wc -l
17

just because of some stupid gcc extra warning switch?

I say disable the gcc warning. Pfft.

--
Regards/Gruss,
Boris.