x86/microcode/AMD: Avoid -Wformat warning with clang-15
authorArnd Bergmann <arnd@arndb.de>
Fri, 5 Apr 2024 20:49:07 +0000 (22:49 +0200)
committerBorislav Petkov (AMD) <bp@alien8.de>
Fri, 5 Apr 2024 21:26:18 +0000 (23:26 +0200)
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.

  [ bp: Massage commit message. ]

Fixes: 2e9064faccd1 ("x86/microcode/amd: Fix snprintf() format string warning in W=1 build")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20240405204919.1003409-1-arnd@kernel.org
arch/x86/kernel/cpu/microcode/amd.c

index 13b45b9c806daef10e93428294d0705fe86b9dea..620f0af713ca29c658ebd3fb4a1998eacd6913be 100644 (file)
@@ -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;