x86/jailhouse: Prepare for separate mpparse callbacks
authorThomas Gleixner <tglx@linutronix.de>
Tue, 13 Feb 2024 21:05:10 +0000 (22:05 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 15 Feb 2024 21:07:40 +0000 (22:07 +0100)
Provide a wrapper around the existing function and fill the new callbacks
in.

No functional change as the new callbacks are not yet operational.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Michael Kelley <mhklinux@outlook.com>
Tested-by: Sohil Mehta <sohil.mehta@intel.com>
Link: https://lore.kernel.org/r/20240212154639.683073662@linutronix.de
arch/x86/kernel/jailhouse.c

index 578d16fc040fa1eadf31344b81877c1ed343b2cf..6d663afd88df73391f0fbcbd9b209fc78add3237 100644 (file)
@@ -118,6 +118,11 @@ static void __init jailhouse_get_smp_config(unsigned int early)
        }
 }
 
+static void __init jailhouse_parse_smp_config(void)
+{
+       jailhouse_get_smp_config(false);
+}
+
 static void jailhouse_no_restart(void)
 {
        pr_notice("Jailhouse: Restart not supported, halting\n");
@@ -201,21 +206,24 @@ static void __init jailhouse_init_platform(void)
        struct setup_data header;
        void *mapping;
 
-       x86_init.irqs.pre_vector_init   = x86_init_noop;
-       x86_init.timers.timer_init      = jailhouse_timer_init;
-       x86_init.mpparse.get_smp_config = jailhouse_get_smp_config;
-       x86_init.pci.arch_init          = jailhouse_pci_arch_init;
+       x86_init.irqs.pre_vector_init           = x86_init_noop;
+       x86_init.timers.timer_init              = jailhouse_timer_init;
+       x86_init.mpparse.find_mptable           = x86_init_noop;
+       x86_init.mpparse.early_parse_smp_cfg    = x86_init_noop;
+       x86_init.mpparse.parse_smp_cfg          = jailhouse_parse_smp_config;
+       x86_init.mpparse.get_smp_config         = jailhouse_get_smp_config;
+       x86_init.pci.arch_init                  = jailhouse_pci_arch_init;
 
-       x86_platform.calibrate_cpu      = jailhouse_get_tsc;
-       x86_platform.calibrate_tsc      = jailhouse_get_tsc;
-       x86_platform.get_wallclock      = jailhouse_get_wallclock;
-       x86_platform.legacy.rtc         = 0;
-       x86_platform.legacy.warm_reset  = 0;
-       x86_platform.legacy.i8042       = X86_LEGACY_I8042_PLATFORM_ABSENT;
+       x86_platform.calibrate_cpu              = jailhouse_get_tsc;
+       x86_platform.calibrate_tsc              = jailhouse_get_tsc;
+       x86_platform.get_wallclock              = jailhouse_get_wallclock;
+       x86_platform.legacy.rtc                 = 0;
+       x86_platform.legacy.warm_reset          = 0;
+       x86_platform.legacy.i8042               = X86_LEGACY_I8042_PLATFORM_ABSENT;
 
-       legacy_pic                      = &null_legacy_pic;
+       legacy_pic                              = &null_legacy_pic;
 
-       machine_ops.emergency_restart   = jailhouse_no_restart;
+       machine_ops.emergency_restart           = jailhouse_no_restart;
 
        while (pa_data) {
                mapping = early_memremap(pa_data, sizeof(header));