• Borislav Petkov's avatar
    x86/microcode/AMD: Apply the patch early on every logical thread · e7ad18d1
    Borislav Petkov authored
    Currently, the patch application logic checks whether the revision
    needs to be applied on each logical CPU (SMT thread). Therefore, on SMT
    designs where the microcode engine is shared between the two threads,
    the application happens only on one of them as that is enough to update
    the shared microcode engine.
    
    However, there are microcode patches which do per-thread modification,
    see Link tag below.
    
    Therefore, drop the revision check and try applying on each thread. This
    is what the BIOS does too so this method is very much tested.
    
    Btw, change only the early paths. On the late loading paths, there's no
    point in doing per-thread modification because if is it some case like
    in the bugzilla below - removing a CPUID flag - the kernel cannot go and
    un-use features it has detected are there early. For that, one should
    use early loading anyway.
    
      [ bp: Fixes does not contain the oldest commit which did check for
        equality but that is good enough. ]
    
    Fixes: 8801b3fc ("x86/microcode/AMD: Rework container parsing")
    Reported-by: default avatarȘtefan Talpalaru <stefantalpalaru@yahoo.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Tested-by: default avatarȘtefan Talpalaru <stefantalpalaru@yahoo.com>
    Cc: <stable@vger.kernel.org>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216211
    e7ad18d1
amd.c 22 KB