mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
x86/hyperv/vtl: Use the wakeup mailbox to boot secondary CPUs
The hypervisor is an untrusted entity for TDX guests. It cannot be used to boot secondary CPUs. The function hv_vtl_wakeup_secondary_cpu() cannot be used. Instead, the virtual firmware boots the secondary CPUs and places them in a state to transfer control to the kernel using the wakeup mailbox. The firmware enumerates the mailbox via either an ACPI table or a DeviceTree node. If the wakeup mailbox is present, the kernel updates the APIC callback wakeup_secondary_cpu_64() to use it. Reviewed-by: Dexuan Cui <decui@microsoft.com> Reviewed-by: Michael Kelley <mhklinux@outlook.com> Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Dexuan Cui <dexuan@kernel.org>
This commit is contained in:
parent
8020034119
commit
7a035678fc
|
|
@ -274,7 +274,15 @@ int __init hv_vtl_early_init(void)
|
|||
panic("XSAVE has to be disabled as it is not supported by this module.\n"
|
||||
"Please add 'noxsave' to the kernel command line.\n");
|
||||
|
||||
apic_update_callback(wakeup_secondary_cpu_64, hv_vtl_wakeup_secondary_cpu);
|
||||
/*
|
||||
* TDX confidential VMs do not trust the hypervisor and cannot use it to
|
||||
* boot secondary CPUs. Instead, they will be booted using the wakeup
|
||||
* mailbox if detected during boot. See setup_arch().
|
||||
*
|
||||
* There is no paravisor present if we are here.
|
||||
*/
|
||||
if (!hv_isolation_type_tdx())
|
||||
apic_update_callback(wakeup_secondary_cpu_64, hv_vtl_wakeup_secondary_cpu);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user