lkml.org 
[lkml]   [2017]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v9 26/38] x86/CPU/AMD: Make the microcode level available earlier in the boot
    Date
    Move the setting of the cpuinfo_x86.microcode field from amd_init() to
    early_amd_init() so that it is available earlier in the boot process. This
    avoids having to read MSR_AMD64_PATCH_LEVEL directly during early boot.

    Reviewed-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    ---
    arch/x86/kernel/cpu/amd.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
    index 5bdcbd4..fdcf305 100644
    --- a/arch/x86/kernel/cpu/amd.c
    +++ b/arch/x86/kernel/cpu/amd.c
    @@ -547,8 +547,12 @@ static void bsp_init_amd(struct cpuinfo_x86 *c)

    static void early_init_amd(struct cpuinfo_x86 *c)
    {
    + u32 dummy;
    +
    early_init_amd_mc(c);

    + rdmsr_safe(MSR_AMD64_PATCH_LEVEL, &c->microcode, &dummy);
    +
    /*
    * c->x86_power is 8000_0007 edx. Bit 8 is TSC runs at constant rate
    * with P/T states and does not stop in deep C-states
    @@ -746,8 +750,6 @@ static void init_amd_bd(struct cpuinfo_x86 *c)

    static void init_amd(struct cpuinfo_x86 *c)
    {
    - u32 dummy;
    -
    early_init_amd(c);

    /*
    @@ -809,8 +811,6 @@ static void init_amd(struct cpuinfo_x86 *c)
    if (c->x86 > 0x11)
    set_cpu_cap(c, X86_FEATURE_ARAT);

    - rdmsr_safe(MSR_AMD64_PATCH_LEVEL, &c->microcode, &dummy);
    -
    /* 3DNow or LM implies PREFETCHW */
    if (!cpu_has(c, X86_FEATURE_3DNOWPREFETCH))
    if (cpu_has(c, X86_FEATURE_3DNOW) || cpu_has(c, X86_FEATURE_LM))
    \
     
     \ /
      Last update: 2017-07-07 15:49    [W:3.318 / U:0.676 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site