Message ID | 20250503191515.24041-9-ricardo.neri-calderon@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | x86/hyperv/hv_vtl: Use a wakeup mailbox to boot secondary CPUs | expand |
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Sent: Saturday, May 3, 2025 12:15 PM > From: Yunhong Jiang <yunhong.jiang@linux.intel.com> > > Hyper-V VTL clears x86_platform.realmode_{init(), reserve()} in > hv_vtl_platform_init() whereas it sets real_mode_header later in > hv_vtl_early_init(). There is no need to deal with the real mode memory > in two places: x86_platform.realmode_init() is invoked much later via an > early_initcall. > > Set real_mode_header in hv_vtl_init_platform() to keep all code dealing > with memory for the real mode trampoline in one place. Besides making the > code more readable, it prepares it for a subsequent changeset in which the > behavior needs to change to support Hyper-V VTL guests in TDX environment. > > Suggested-by: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Yunhong Jiang <yunhong.jiang@linux.intel.com> > Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> > --- > Changes since v2: > - Edited the commit message for clarity. > > Changes since v1: > - Introduced this patch. > --- > arch/x86/hyperv/hv_vtl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c > index 4580936dcb03..6bd183ee484f 100644 > --- a/arch/x86/hyperv/hv_vtl.c > +++ b/arch/x86/hyperv/hv_vtl.c > @@ -60,6 +60,7 @@ void __init hv_vtl_init_platform(void) > > x86_platform.realmode_reserve = x86_init_noop; > x86_platform.realmode_init = x86_init_noop; > + real_mode_header = &hv_vtl_real_mode_header; > x86_init.irqs.pre_vector_init = x86_init_noop; > x86_init.timers.timer_init = x86_init_noop; > x86_init.resources.probe_roms = x86_init_noop; > @@ -279,7 +280,6 @@ 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"); > > - real_mode_header = &hv_vtl_real_mode_header; > apic_update_callback(wakeup_secondary_cpu_64, hv_vtl_wakeup_secondary_cpu); > > return 0; > -- > 2.43.0 Reviewed-by: Michael Kelley <mhklinux@outlook.com>
diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c index 4580936dcb03..6bd183ee484f 100644 --- a/arch/x86/hyperv/hv_vtl.c +++ b/arch/x86/hyperv/hv_vtl.c @@ -60,6 +60,7 @@ void __init hv_vtl_init_platform(void) x86_platform.realmode_reserve = x86_init_noop; x86_platform.realmode_init = x86_init_noop; + real_mode_header = &hv_vtl_real_mode_header; x86_init.irqs.pre_vector_init = x86_init_noop; x86_init.timers.timer_init = x86_init_noop; x86_init.resources.probe_roms = x86_init_noop; @@ -279,7 +280,6 @@ 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"); - real_mode_header = &hv_vtl_real_mode_header; apic_update_callback(wakeup_secondary_cpu_64, hv_vtl_wakeup_secondary_cpu); return 0;