]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/microcode/AMD: Make __verify_patch_size() return bool
authorNikolay Borisov <nik.borisov@suse.com>
Fri, 18 Oct 2024 15:51:50 +0000 (18:51 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2025 15:45:56 +0000 (16:45 +0100)
commit d8317f3d8e6b412ff51ea66f1de2b2f89835f811 upstream

The result of that function is in essence boolean, so simplify to return the
result of the relevant expression. It also makes it follow the convention used
by __verify_patch_section().

No functional changes.

Signed-off-by: Nikolay Borisov <nik.borisov@suse.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20241018155151.702350-3-nik.borisov@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/cpu/microcode/amd.c

index 4a30eb7f4ab90cebcf4a0f0693220e768400ed01..81aa7fc0eb30093793fe341a861fc47f3eb520c9 100644 (file)
@@ -285,13 +285,13 @@ __verify_patch_section(const u8 *buf, size_t buf_size, u32 *sh_psize)
  * exceed the per-family maximum). @sh_psize is the size read from the section
  * header.
  */
-static unsigned int __verify_patch_size(u32 sh_psize, size_t buf_size)
+static bool __verify_patch_size(u32 sh_psize, size_t buf_size)
 {
        u8 family = x86_family(bsp_cpuid_1_eax);
        u32 max_size;
 
        if (family >= 0x15)
-               return min_t(u32, sh_psize, buf_size);
+               goto ret;
 
 #define F1XH_MPB_MAX_SIZE 2048
 #define F14H_MPB_MAX_SIZE 1824
@@ -305,13 +305,15 @@ static unsigned int __verify_patch_size(u32 sh_psize, size_t buf_size)
                break;
        default:
                WARN(1, "%s: WTF family: 0x%x\n", __func__, family);
-               return 0;
+               return false;
        }
 
-       if (sh_psize > min_t(u32, buf_size, max_size))
-               return 0;
+       if (sh_psize > max_size)
+               return false;
 
-       return sh_psize;
+ret:
+       /* Working with the whole buffer so < is ok. */
+       return sh_psize <= buf_size;
 }
 
 /*
@@ -326,7 +328,6 @@ static int verify_patch(const u8 *buf, size_t buf_size, u32 *patch_size)
 {
        u8 family = x86_family(bsp_cpuid_1_eax);
        struct microcode_header_amd *mc_hdr;
-       unsigned int ret;
        u32 sh_psize;
        u16 proc_id;
        u8 patch_fam;
@@ -350,8 +351,7 @@ static int verify_patch(const u8 *buf, size_t buf_size, u32 *patch_size)
                return -1;
        }
 
-       ret = __verify_patch_size(sh_psize, buf_size);
-       if (!ret) {
+       if (!__verify_patch_size(sh_psize, buf_size)) {
                pr_debug("Per-family patch size mismatch.\n");
                return -1;
        }