From: Borislav Petkov <bp@alien8.de>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>
Subject: Re: AMD microcode loading broken on 32 bit
Date: Tue, 28 Jan 2014 22:30:30 +0100 [thread overview]
Message-ID: <20140128213030.GM815@pd.tnic> (raw)
In-Reply-To: <52E81B90.8040604@oracle.com>
On Tue, Jan 28, 2014 at 04:05:20PM -0500, Boris Ostrovsky wrote:
> Yes. This was a bug in our build environment. It is fixed now but I
> put this bug back when I was testing your patch.
Right, that was the deal. Oh well, we'd need to verify the container
too, I guess:
---
diff --git a/arch/x86/kernel/cpu/microcode/amd_early.c b/arch/x86/kernel/cpu/microcode/amd_early.c
index 8384c0fa206f..c568b6c9af95 100644
--- a/arch/x86/kernel/cpu/microcode/amd_early.c
+++ b/arch/x86/kernel/cpu/microcode/amd_early.c
@@ -37,10 +37,12 @@ static __initdata char ucode_path[] = "kernel/x86/microcode/AuthenticAMD.bin";
static struct cpio_data __init find_ucode_in_initrd(void)
{
+ struct cpio_data ret;
long offset = 0;
char *path;
void *start;
size_t size;
+ u32 *hdr;
#ifdef CONFIG_X86_32
struct boot_params *p;
@@ -59,7 +61,18 @@ static struct cpio_data __init find_ucode_in_initrd(void)
size = boot_params.hdr.ramdisk_size;
#endif
- return find_cpio_data(path, start, size, &offset);
+ ret = find_cpio_data(path, start, size, &offset);
+
+ /* Verify we didn't get some garbage from the initrd. */
+ hdr = (u32 *)ret.data;
+
+ if (hdr[0] != UCODE_MAGIC ||
+ hdr[1] != UCODE_EQUIV_CPU_TABLE_TYPE ||
+ hdr[2] == 0) {
+ ret.data = NULL;
+ ret.size = 0;
+ }
+ return ret;
}
static size_t compute_container_size(u8 *data, u32 total_size)
@@ -359,7 +372,7 @@ int __init save_microcode_in_initrd_amd(void)
pr_info("microcode: updated early to new patch_level=0x%08x\n",
ucode_new_rev);
- if (!container)
+ if (!container || !ucode_cpio.data)
return -EINVAL;
eax = cpuid_eax(0x00000001);
--
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
next prev parent reply other threads:[~2014-01-28 21:30 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <52DE94A9.9060505@oracle.com>
2014-01-21 16:14 ` AMD microcode loading broken on 32 bit Borislav Petkov
2014-01-21 17:55 ` Boris Ostrovsky
2014-01-21 18:25 ` Borislav Petkov
2014-01-23 18:08 ` Boris Ostrovsky
2014-01-23 18:54 ` Gene Heskett
2014-01-23 19:09 ` Boris Ostrovsky
2014-01-23 19:36 ` Gene Heskett
2014-01-23 19:29 ` Borislav Petkov
2014-01-23 19:41 ` Boris Ostrovsky
2014-01-28 16:24 ` Borislav Petkov
2014-01-28 20:43 ` Boris Ostrovsky
2014-01-28 20:52 ` Borislav Petkov
2014-01-28 21:05 ` Boris Ostrovsky
2014-01-28 21:30 ` Borislav Petkov [this message]
2014-01-28 21:37 ` Boris Ostrovsky
2014-01-28 23:10 ` Boris Ostrovsky
2014-01-28 23:22 ` Borislav Petkov
2014-01-30 15:13 ` Borislav Petkov
2014-01-30 19:41 ` Boris Ostrovsky
2014-01-30 19:54 ` Borislav Petkov
2014-02-03 17:55 ` [PATCH -v2] x86, microcode, AMD: Sanity-check initrd image Borislav Petkov
2014-02-03 19:13 ` Boris Ostrovsky
2014-02-03 19:30 ` Borislav Petkov
2014-02-03 19:37 ` Boris Ostrovsky
2014-02-03 19:52 ` Borislav Petkov
2014-02-03 20:28 ` Boris Ostrovsky
2014-02-03 20:33 ` Borislav Petkov
2014-02-03 20:41 ` [PATCH] x86, microcode, AMD: Unify valid container checks Borislav Petkov
2014-02-06 19:39 ` [tip:x86/urgent] " tip-bot for Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140128213030.GM815@pd.tnic \
--to=bp@alien8.de \
--cc=boris.ostrovsky@oracle.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.