]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/microcode/AMD: Add a @cpu parameter to the reloading functions
authorBorislav Petkov (AMD) <bp@alien8.de>
Wed, 25 Jan 2023 23:08:03 +0000 (00:08 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 15:26:46 +0000 (16:26 +0100)
commit a5ad92134bd153a9ccdcddf09a95b088f36c3cce upstream.

Will be used in a subsequent change.

Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20230130161709.11615-3-bp@alien8.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/include/asm/microcode.h
arch/x86/include/asm/microcode_amd.h
arch/x86/kernel/cpu/microcode/amd.c
arch/x86/kernel/cpu/microcode/core.c

index c11755bddea2a8cc513c2fc1d27b77f414a46e6d..7d37fff51df9d94852b530cccdbe459955077b11 100644 (file)
@@ -144,7 +144,7 @@ static inline unsigned int x86_cpuid_family(void)
 int __init microcode_init(void);
 extern void __init load_ucode_bsp(void);
 extern void load_ucode_ap(void);
-void reload_early_microcode(void);
+void reload_early_microcode(unsigned int cpu);
 extern bool get_builtin_firmware(struct cpio_data *cd, const char *name);
 extern bool initrd_gone;
 void microcode_bsp_resume(void);
@@ -152,7 +152,7 @@ void microcode_bsp_resume(void);
 static inline int __init microcode_init(void)                  { return 0; };
 static inline void __init load_ucode_bsp(void)                 { }
 static inline void load_ucode_ap(void)                         { }
-static inline void reload_early_microcode(void)                        { }
+static inline void reload_early_microcode(unsigned int cpu)    { }
 static inline void microcode_bsp_resume(void)                  { }
 static inline bool
 get_builtin_firmware(struct cpio_data *cd, const char *name)   { return false; }
index 5c524d4f71cd7b2a99b7037f7962e334f227a94c..a645b25ee442a7ccc936fb903e7e9a3ad65f2411 100644 (file)
@@ -47,12 +47,12 @@ struct microcode_amd {
 extern void __init load_ucode_amd_bsp(unsigned int family);
 extern void load_ucode_amd_ap(unsigned int family);
 extern int __init save_microcode_in_initrd_amd(unsigned int family);
-void reload_ucode_amd(void);
+void reload_ucode_amd(unsigned int cpu);
 #else
 static inline void __init load_ucode_amd_bsp(unsigned int family) {}
 static inline void load_ucode_amd_ap(unsigned int family) {}
 static inline int __init
 save_microcode_in_initrd_amd(unsigned int family) { return -EINVAL; }
-void reload_ucode_amd(void) {}
+static inline void reload_ucode_amd(unsigned int cpu) {}
 #endif
 #endif /* _ASM_X86_MICROCODE_AMD_H */
index fa25837e878bab0e9657526b2f58f74bdc109fb8..fc4def21697f5187a060f5da79be328468b1383b 100644 (file)
@@ -354,7 +354,7 @@ int __init save_microcode_in_initrd_amd(unsigned int cpuid_1_eax)
        return 0;
 }
 
-void reload_ucode_amd(void)
+void reload_ucode_amd(unsigned int cpu)
 {
        struct microcode_amd *mc;
        u32 rev, dummy;
index 78ac8c33a16e4fc442e7281ee5e92c3e8d789292..cc3acb2ff99b88f9893a909ea91a3131b87b04cd 100644 (file)
@@ -326,7 +326,7 @@ struct cpio_data find_microcode_in_initrd(const char *path, bool use_pa)
 #endif
 }
 
-void reload_early_microcode(void)
+void reload_early_microcode(unsigned int cpu)
 {
        int vendor, family;
 
@@ -340,7 +340,7 @@ void reload_early_microcode(void)
                break;
        case X86_VENDOR_AMD:
                if (family >= 0x10)
-                       reload_ucode_amd();
+                       reload_ucode_amd(cpu);
                break;
        default:
                break;
@@ -783,7 +783,7 @@ void microcode_bsp_resume(void)
        if (uci->valid && uci->mc)
                microcode_ops->apply_microcode(cpu);
        else if (!uci->mc)
-               reload_early_microcode();
+               reload_early_microcode(cpu);
 }
 
 static struct syscore_ops mc_syscore_ops = {