Commit 9d87f5b6 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Dave Hansen
Browse files

x86/apic: Mop up *setup_apic_routing()



default_setup_apic_routing() is a complete misnomer. On 64bit it does the
actual APIC probing and on 32bit it is used to force select the bigsmp APIC
and to emit a redundant message in the apic::setup_apic_routing() callback.

Rename the 64bit and 32bit function so they reflect what they are doing and
remove the useless APIC callback.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: default avatarMichael Kelley <mikelley@microsoft.com>
Tested-by: default avatarSohil Mehta <sohil.mehta@intel.com>
Tested-by: Juergen Gross <jgross@suse.com> # Xen PV (dom0 and unpriv. guest)
parent 9faee3ec
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -40,11 +40,9 @@


#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)
extern void generic_apic_probe(void);
extern void x86_32_probe_apic(void);
#else
static inline void generic_apic_probe(void)
{
}
static inline void x86_32_probe_apic(void) { }
#endif

#ifdef CONFIG_X86_LOCAL_APIC
@@ -302,7 +300,6 @@ struct apic {
	bool	(*check_apicid_used)(physid_mask_t *map, int apicid);
	void	(*init_apic_ldr)(void);
	void	(*ioapic_phys_id_map)(physid_mask_t *phys_map, physid_mask_t *retmap);
	void	(*setup_apic_routing)(void);
	int	(*cpu_present_to_apicid)(int mps_cpu);
	int	(*phys_pkg_id)(int cpuid_apic, int index_msb);

@@ -457,12 +454,13 @@ static inline unsigned int read_apic_id(void)
typedef int (*wakeup_cpu_handler)(int apicid, unsigned long start_eip);
extern void acpi_wake_cpu_handler_update(wakeup_cpu_handler handler);
extern int default_acpi_madt_oem_check(char *, char *);
extern void x86_64_probe_apic(void);
#else
static inline int default_acpi_madt_oem_check(char *a, char *b) { return 0; }
static inline void x86_64_probe_apic(void) { }
#endif

extern int default_apic_id_valid(u32 apicid);
extern void default_setup_apic_routing(void);

extern u32 apic_default_calc_apicid(unsigned int cpu);
extern u32 apic_flat_calc_apicid(unsigned int cpu);
+3 −1
Original line number Diff line number Diff line
@@ -1419,7 +1419,9 @@ void __init apic_intr_mode_init(void)
		break;
	}

	default_setup_apic_routing();
	x86_64_probe_apic();

	x86_32_install_bigsmp();

	if (x86_platform.apic_post_init)
		x86_platform.apic_post_init();
+0 −2
Original line number Diff line number Diff line
@@ -101,7 +101,6 @@ static struct apic apic_flat __ro_after_init = {
	.check_apicid_used		= NULL,
	.init_apic_ldr			= default_init_apic_ldr,
	.ioapic_phys_id_map		= NULL,
	.setup_apic_routing		= NULL,
	.cpu_present_to_apicid		= default_cpu_present_to_apicid,
	.phys_pkg_id			= flat_phys_pkg_id,

@@ -178,7 +177,6 @@ static struct apic apic_physflat __ro_after_init = {

	.check_apicid_used		= NULL,
	.ioapic_phys_id_map		= NULL,
	.setup_apic_routing		= NULL,
	.cpu_present_to_apicid		= default_cpu_present_to_apicid,
	.phys_pkg_id			= flat_phys_pkg_id,

+0 −1
Original line number Diff line number Diff line
@@ -94,7 +94,6 @@ struct apic apic_noop __ro_after_init = {

	.check_apicid_used		= default_check_apicid_used,
	.ioapic_phys_id_map		= default_ioapic_phys_id_map,
	.setup_apic_routing		= NULL,
	.cpu_present_to_apicid		= default_cpu_present_to_apicid,

	.phys_pkg_id			= noop_phys_pkg_id,
+0 −2
Original line number Diff line number Diff line
@@ -253,7 +253,6 @@ static const struct apic apic_numachip1 __refconst = {

	.check_apicid_used		= NULL,
	.ioapic_phys_id_map		= NULL,
	.setup_apic_routing		= NULL,
	.cpu_present_to_apicid		= default_cpu_present_to_apicid,
	.phys_pkg_id			= numachip_phys_pkg_id,

@@ -296,7 +295,6 @@ static const struct apic apic_numachip2 __refconst = {

	.check_apicid_used		= NULL,
	.ioapic_phys_id_map		= NULL,
	.setup_apic_routing		= NULL,
	.cpu_present_to_apicid		= default_cpu_present_to_apicid,
	.phys_pkg_id			= numachip_phys_pkg_id,

Loading