Commit dcb76008 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86/mpparse: Switch to new init callbacks



Now that all platforms have the new split SMP configuration callbacks set
up, flip the switch and remove the old callback pointer and mop up the
platform code.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: default avatarMichael Kelley <mhklinux@outlook.com>
Tested-by: default avatarSohil Mehta <sohil.mehta@intel.com>
Link: https://lore.kernel.org/r/20240212154639.870883080@linutronix.de

parent c22e19cd
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ void __init hv_vtl_init_platform(void)
	x86_init.mpparse.find_mptable = x86_init_noop;
	x86_init.mpparse.early_parse_smp_cfg = x86_init_noop;
	x86_init.mpparse.parse_smp_cfg = x86_init_noop;
	x86_init.mpparse.get_smp_config = x86_init_uint_noop;

	x86_platform.get_wallclock = get_rtc_noop;
	x86_platform.set_wallclock = set_rtc_noop;
+1 −8
Original line number Diff line number Diff line
@@ -46,14 +46,9 @@ extern int smp_found_config;
# define smp_found_config 0
#endif

static inline void get_smp_config(void)
{
	x86_init.mpparse.get_smp_config(0);
}

static inline void early_get_smp_config(void)
{
	x86_init.mpparse.get_smp_config(1);
	x86_init.mpparse.early_parse_smp_cfg();
}

#ifdef CONFIG_X86_MPPARSE
@@ -62,14 +57,12 @@ extern int enable_update_mptable;
extern void mpparse_find_mptable(void);
extern void mpparse_parse_early_smp_config(void);
extern void mpparse_parse_smp_config(void);
extern void mpparse_get_smp_config(unsigned int early);
#else
static inline void e820__memblock_alloc_reserved_mpc_new(void) { }
#define enable_update_mptable		0
#define mpparse_find_mptable		x86_init_noop
#define mpparse_parse_early_smp_config	x86_init_noop
#define mpparse_parse_smp_config	x86_init_noop
#define mpparse_get_smp_config		x86_init_uint_noop
#endif

int generic_processor_info(int apicid);
+0 −2
Original line number Diff line number Diff line
@@ -16,14 +16,12 @@ struct irq_domain;
 * struct x86_init_mpparse - platform specific mpparse ops
 * @setup_ioapic_ids:		platform specific ioapic id override
 * @find_mptable:		Find MPTABLE early to reserve the memory region
 * @get_smp_config:		get the smp configuration
 * @early_parse_smp_cfg:	Parse the SMP configuration data early before initmem_init()
 * @parse_smp_cfg:		Parse the SMP configuration data
 */
struct x86_init_mpparse {
	void (*setup_ioapic_ids)(void);
	void (*find_mptable)(void);
	void (*get_smp_config)(unsigned int early);
	void (*early_parse_smp_cfg)(void);
	void (*parse_smp_cfg)(void);
};
+1 −7
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ static void __init jailhouse_x2apic_init(void)
#endif
}

static void __init jailhouse_get_smp_config(unsigned int early)
static void __init jailhouse_parse_smp_config(void)
{
	struct ioapic_domain_cfg ioapic_cfg = {
		.type = IOAPIC_DOMAIN_STRICT,
@@ -118,11 +118,6 @@ 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");
@@ -211,7 +206,6 @@ static void __init jailhouse_init_platform(void)
	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;
+1 −1
Original line number Diff line number Diff line
@@ -473,7 +473,7 @@ static int __init check_physptr(struct mpf_intel *mpf, unsigned int early)
/*
 * Scan the memory blocks for an SMP configuration block.
 */
void __init mpparse_get_smp_config(unsigned int early)
static __init void mpparse_get_smp_config(unsigned int early)
{
	struct mpf_intel *mpf;

Loading