x86/microcode: Provide new control functions
authorThomas Gleixner <tglx@linutronix.de>
Mon, 2 Oct 2023 12:00:02 +0000 (14:00 +0200)
committerBorislav Petkov (AMD) <bp@alien8.de>
Tue, 24 Oct 2023 13:05:55 +0000 (15:05 +0200)
commit6067788f04b1020b316344fe34746f96d594a042
tree653ec407ebec049190c9d0ed56b8dc3f36546633
parentba3aeb97cb2c53025356f31c5a0a294385194115
x86/microcode: Provide new control functions

The current all in one code is unreadable and really not suited for
adding future features like uniform loading with package or system
scope.

Provide a set of new control functions which split the handling of the
primary and secondary CPUs. These will replace the current rendezvous
all in one function in the next step. This is intentionally a separate
change because diff makes an complete unreadable mess otherwise.

So the flow separates the primary and the secondary CPUs into their own
functions which use the control field in the per CPU ucode_ctrl struct.

   primary() secondary()
    wait_for_all()  wait_for_all()
    apply_ucode()  wait_for_release()
    release()  apply_ucode()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20231002115903.377922731@linutronix.de
arch/x86/kernel/cpu/microcode/core.c