x86/cpu: Init AP exception handling from cpu_init_secondary()
authorBorislav Petkov <bp@suse.de>
Mon, 10 May 2021 21:29:25 +0000 (23:29 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 18 May 2021 12:49:21 +0000 (14:49 +0200)
commitb1efd0ff4bd16e8bb8607ba566b03f2024a830bb
tree3432711b593241ed271680a0b624b34c7f291395
parentd07f6ca923ea0927a1024dfccafc5b53b61cfecc
x86/cpu: Init AP exception handling from cpu_init_secondary()

SEV-ES guests require properly setup task register with which the TSS
descriptor in the GDT can be located so that the IST-type #VC exception
handler which they need to function properly, can be executed.

This setup needs to happen before attempting to load microcode in
ucode_cpu_init() on secondary CPUs which can cause such #VC exceptions.

Simplify the machinery by running that exception setup from a new function
cpu_init_secondary() and explicitly call cpu_init_exception_handling() for
the boot CPU before cpu_init(). The latter prepares for fixing and
simplifying the exception/IST setup on the boot CPU.

There should be no functional changes resulting from this patch.

[ tglx: Reworked it so cpu_init_exception_handling() stays seperate ]

Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Lai Jiangshan <laijs@linux.alibaba.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/87k0o6gtvu.ffs@nanos.tec.linutronix.de
arch/x86/include/asm/processor.h
arch/x86/kernel/cpu/common.c
arch/x86/kernel/smpboot.c
arch/x86/kernel/traps.c