On Mon, 28 Oct 2024, Arnd Bergmann wrote: + Hans > From: Arnd Bergmann <arnd@xxxxxxxx> > > After the file got split, there are now W=1 warnings for users that > include it without referencing hsmp_msg_desc_table: > > In file included from arch/x86/include/asm/amd_hsmp.h:6, > from drivers/platform/x86/amd/hsmp/plat.c:12: > arch/x86/include/uapi/asm/amd_hsmp.h:91:35: error: 'hsmp_msg_desc_table' defined but not used [-Werror=unused-const-variable=] > 91 | static const struct hsmp_msg_desc hsmp_msg_desc_table[] = { > | ^~~~~~~~~~~~~~~~~~~ > > Mark it as __attribute__((maybe_unused)) to shut up the warning but > keep it in the file in case it is used from userland. The __maybe_unused > shorthand unfurtunately isn't available in userspace, so this has to unfortunately > be the long form. > > Fixes: e47c018a0ee6 ("platform/x86/amd/hsmp: Move platform device specific code to plat.c") > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > Ideally this array wouldn't be part of the UAPI at all, since it is > not really a interface, but it's hard to know what part of the header > is actually used outside of the kernel. Sadly this slipped through during review even if it was brought up by somebody back then. The (rather weak) reasoning for having it as a part of UAPI was seemingly accepted uncontested :-(. > --- > arch/x86/include/uapi/asm/amd_hsmp.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/include/uapi/asm/amd_hsmp.h b/arch/x86/include/uapi/asm/amd_hsmp.h > index e5d182c7373c..4a7cace06204 100644 > --- a/arch/x86/include/uapi/asm/amd_hsmp.h > +++ b/arch/x86/include/uapi/asm/amd_hsmp.h > @@ -88,7 +88,8 @@ struct hsmp_msg_desc { > * > * Not supported messages would return -ENOMSG. > */ > -static const struct hsmp_msg_desc hsmp_msg_desc_table[] = { > +static const struct hsmp_msg_desc hsmp_msg_desc_table[] > + __attribute__((unused)) = { It seems that the main goal why it was put into UAPI was "to give the user some reference about proper num_args and response_size for each message": https://lore.kernel.org/all/CAPhsuW5V0BJT+YSwv1U=hRG0k9zBWXeRd=E1n4U5hvcnwEV3mQ@xxxxxxxxxxxxxx/ Are we actually expecting userspace to benefit from this in C form? Suma? Hans? > /* RESERVED */ > {0, 0, HSMP_RSVD}, -- i.