x86/microcode/AMD: Apply the patch early on every logical thread
authorBorislav Petkov <bp@suse.de>
Wed, 5 Oct 2022 10:00:08 +0000 (12:00 +0200)
committerBorislav Petkov <bp@suse.de>
Tue, 18 Oct 2022 09:03:27 +0000 (11:03 +0200)
commite7ad18d1169c62e6c78c01ff693fd362d9d65278
treef8e94529c5613d104dbf034f4ece1045f775f644
parent71eac7063698b7d7b8fafb1683ac24a034541141
x86/microcode/AMD: Apply the patch early on every logical thread

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: 8801b3fcb574 ("x86/microcode/AMD: Rework container parsing")
Reported-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com>
Cc: <stable@vger.kernel.org>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216211
arch/x86/kernel/cpu/microcode/amd.c