]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
x86/hyperv/vtl: Set real_mode_header in hv_vtl_init_platform()
authorYunhong Jiang <yunhong.jiang@linux.intel.com>
Wed, 4 Mar 2026 23:41:16 +0000 (15:41 -0800)
committerDexuan Cui <decui@microsoft.com>
Thu, 28 May 2026 20:01:25 +0000 (20:01 +0000)
Hyper-V VTL clears x86_platform.realmode_{init(), reserve()} in
hv_vtl_init_platform() whereas it sets real_mode_header later in
hv_vtl_early_init(). There is no need to deal with the settings of real
mode memory in two places. Also, both functions are called much earlier
than x86_platform.realmode_init() (via an early_initcall), where the
real_mode_header is needed.

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 a TDX
environment.

Reviewed-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
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>
Signed-off-by: Dexuan Cui <dexuan@kernel.org>
arch/x86/hyperv/hv_vtl.c

index 9b6a9bc4ab760ec8d8d28327d79b8ea2a657b976..e045bf3a2c5947f85bc5368721d7d879868b1c7e 100644 (file)
@@ -70,6 +70,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;
@@ -251,7 +252,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;