x86/microcode/AMD: Move chipset-specific check into verify_patch()
authorBorislav Petkov <bp@suse.de>
Fri, 19 Oct 2018 12:09:39 +0000 (14:09 +0200)
committerBorislav Petkov <bp@suse.de>
Mon, 19 Nov 2018 09:51:06 +0000 (10:51 +0100)
... where it belongs.

No functional changes.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: x86@kernel.org
https://lkml.kernel.org/r/20181107170218.7596-10-bp@alien8.de

arch/x86/kernel/cpu/microcode/amd.c

index be46e1fda77f01d6a3ea3ea7df2fb9dfcece3647..ebac82357639dcf77d86adc4652d6c46c915cf51 100644 (file)
@@ -249,6 +249,12 @@ verify_patch(u8 family, const u8 *buf, unsigned int buf_size, bool early)
        mc_hdr  = (struct microcode_header_amd *)(buf + SECTION_HDR_SIZE);
        proc_id = mc_hdr->processor_rev_id;
 
+       if (mc_hdr->nb_dev_id || mc_hdr->sb_dev_id) {
+               if (!early)
+                       pr_err("Patch-ID 0x%08x: chipset-specific code unsupported.\n", mc_hdr->patch_id);
+               return 0;
+       }
+
        patch_fam = 0xf + (proc_id >> 12);
        if (patch_fam != family)
                return 0;
@@ -741,12 +747,6 @@ static int verify_and_add_patch(u8 family, u8 *fw, unsigned int leftover)
        mc_hdr      = (struct microcode_header_amd *)(fw + SECTION_HDR_SIZE);
        proc_id     = mc_hdr->processor_rev_id;
 
-       if (mc_hdr->nb_dev_id || mc_hdr->sb_dev_id) {
-               pr_err("Patch-ID 0x%08x: chipset-specific code unsupported.\n",
-                       mc_hdr->patch_id);
-               return crnt_size;
-       }
-
        patch = kzalloc(sizeof(*patch), GFP_KERNEL);
        if (!patch) {
                pr_err("Patch allocation failure.\n");