summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/microcode_amd.h
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2013-11-29 17:58:44 +0400
committerBorislav Petkov <bp@suse.de>2014-01-13 22:59:38 +0400
commit5335ba5cf475369f88db8e6835764efdcad8ab96 (patch)
tree3b23ba732f341559b2f90a1f2da5f1b1986b5c99 /arch/x86/include/asm/microcode_amd.h
parente1b43e3f13f7157249fb962ccf88b84eb0421fb4 (diff)
downloadlinux-5335ba5cf475369f88db8e6835764efdcad8ab96.tar.xz
x86, microcode, AMD: Fix early ucode loading
The original idea to use the microcode cache for the APs doesn't pan out because we do memory allocation there very early and with IRQs disabled and we don't want to involve GFP_ATOMIC allocations. Not if it can be helped. Thus, extend the caching of the BSP patch approach to the APs and iterate over the ucode in the initrd instead of using the cache. We still save the relevant patches to it but later, right before we jettison the initrd. While at it, fix early ucode loading on 32-bit too. Signed-off-by: Borislav Petkov <bp@suse.de> Tested-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
Diffstat (limited to 'arch/x86/include/asm/microcode_amd.h')
-rw-r--r--arch/x86/include/asm/microcode_amd.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/include/asm/microcode_amd.h b/arch/x86/include/asm/microcode_amd.h
index 4c019179a57d..b7b10b82d3e5 100644
--- a/arch/x86/include/asm/microcode_amd.h
+++ b/arch/x86/include/asm/microcode_amd.h
@@ -61,11 +61,10 @@ extern int __apply_microcode_amd(struct microcode_amd *mc_amd);
extern int apply_microcode_amd(int cpu);
extern enum ucode_state load_microcode_amd(u8 family, const u8 *data, size_t size);
+#define PATCH_MAX_SIZE PAGE_SIZE
+extern u8 amd_ucode_patch[PATCH_MAX_SIZE];
+
#ifdef CONFIG_MICROCODE_AMD_EARLY
-#ifdef CONFIG_X86_32
-#define MPB_MAX_SIZE PAGE_SIZE
-extern u8 amd_bsp_mpb[MPB_MAX_SIZE];
-#endif
extern void __init load_ucode_amd_bsp(void);
extern void load_ucode_amd_ap(void);
extern int __init save_microcode_in_initrd_amd(void);