x86/apic/64: Uncopypaste probing

No need for the same thing twice. Also prepares for simplifying the APIC ID
validation checks.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Michael Kelley <mikelley@microsoft.com>
Tested-by: Sohil Mehta <sohil.mehta@intel.com>
Tested-by: Juergen Gross <jgross@suse.com> # Xen PV (dom0 and unpriv. guest)
This commit is contained in:
Thomas Gleixner 2023-08-08 15:04:08 -07:00 committed by Dave Hansen
parent 96ae35c75b
commit d65eb31958

View File

@ -13,6 +13,15 @@
#include "local.h"
static __init void apic_install_driver(struct apic *driver)
{
if (apic == driver)
return;
apic = driver;
pr_info("Switched APIC routing to %s:\n", apic->name);
}
/* Select the appropriate APIC driver */
void __init x86_64_probe_apic(void)
{
@ -22,11 +31,7 @@ void __init x86_64_probe_apic(void)
for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) {
if ((*drv)->probe && (*drv)->probe()) {
if (apic != *drv) {
apic = *drv;
pr_info("Switched APIC routing to %s.\n",
apic->name);
}
apic_install_driver(*drv);
break;
}
}
@ -38,11 +43,7 @@ int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) {
if ((*drv)->acpi_madt_oem_check(oem_id, oem_table_id)) {
if (apic != *drv) {
apic = *drv;
pr_info("Setting APIC routing to %s.\n",
apic->name);
}
apic_install_driver(*drv);
return 1;
}
}