Re: [PATCH] x86: microcode: avoid -Wformat warning with clang-15

From: Justin Stitt
Date: Fri Apr 05 2024 - 18:00:00 EST


On Fri, Apr 5, 2024 at 1:49 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> Older versions of clang show a warning for amd.c after a fix for a gcc
> warning:
>
> arch/x86/kernel/cpu/microcode/amd.c:478:47: error: format specifies type 'unsigned char' but the argument has type 'u16' (aka 'unsigned short') [-Werror,-Wformat]
> "amd-ucode/microcode_amd_fam%02hhxh.bin", family);
> ~~~~~~ ^~~~~~
> %02hx
>
> In clang-16 and higher, this warning is disabled by default, but clang-15 is
> still supported, and it's trivial to avoid by adapting the types according
> to the range of the passed data and the format string.
>
> Fixes: 2e9064faccd1 ("x86/microcode/amd: Fix snprintf() format string warning in W=1 build")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Yeah the family only needs a byte so this is OK.

Reviewed-by: Justin Stitt <justinstitt@xxxxxxxxxx>

> ---
> arch/x86/kernel/cpu/microcode/amd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
> index 13b45b9c806d..620f0af713ca 100644
> --- a/arch/x86/kernel/cpu/microcode/amd.c
> +++ b/arch/x86/kernel/cpu/microcode/amd.c
> @@ -465,7 +465,7 @@ static bool early_apply_microcode(u32 cpuid_1_eax, u32 old_rev, void *ucode, siz
> return !__apply_microcode_amd(mc);
> }
>
> -static bool get_builtin_microcode(struct cpio_data *cp, unsigned int family)
> +static bool get_builtin_microcode(struct cpio_data *cp, u8 family)
> {
> char fw_name[36] = "amd-ucode/microcode_amd.bin";
> struct firmware fw;
> --
> 2.39.2
>