diff options
author | Borislav Petkov <bp@suse.de> | 2018-10-19 15:09:39 +0300 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2018-11-19 12:51:06 +0300 |
commit | c79570205ba6064bd756f531e6d9d0b498a191d6 (patch) | |
tree | 32a0a4267aa263b1865c5bff175303fdaec837fd /arch/x86/kernel/cpu/microcode | |
parent | 51776fb805fe4f248f264c1783c286ae60552e9a (diff) | |
download | linux-c79570205ba6064bd756f531e6d9d0b498a191d6.tar.xz |
x86/microcode/AMD: Move chipset-specific check into verify_patch()
... 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
Diffstat (limited to 'arch/x86/kernel/cpu/microcode')
-rw-r--r-- | arch/x86/kernel/cpu/microcode/amd.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c index be46e1fda77f..ebac82357639 100644 --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c @@ -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"); |