Commit ff37b09c authored by Thomas Gleixner's avatar Thomas Gleixner

x86/acpi: Use new APIC registration functions

Use the new topology registration functions and make the early boot code
path __init. No functional change intended.
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/20240213210251.664738831@linutronix.de

parent 4176b541
...@@ -164,33 +164,9 @@ static int __init acpi_parse_madt(struct acpi_table_header *table) ...@@ -164,33 +164,9 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
return 0; return 0;
} }
/** static __init void acpi_register_lapic(u32 apic_id, u32 acpi_id, bool present)
* acpi_register_lapic - register a local apic and generates a logic cpu number
* @id: local apic id to register
* @acpiid: ACPI id to register
* @enabled: this cpu is enabled or not
*
* Returns the logic cpu number which maps to the local apic
*/
static int acpi_register_lapic(int id, u32 acpiid, u8 enabled)
{ {
int cpu; topology_register_apic(apic_id, acpi_id, present);
if (id >= MAX_LOCAL_APIC) {
pr_info("skipped apicid that is too big\n");
return -EINVAL;
}
if (!enabled) {
++disabled_cpus;
return -EINVAL;
}
cpu = generic_processor_info(id);
if (cpu >= 0)
early_per_cpu(x86_cpu_to_acpiid, cpu) = acpiid;
return cpu;
} }
static bool __init acpi_is_processor_usable(u32 lapic_flags) static bool __init acpi_is_processor_usable(u32 lapic_flags)
...@@ -844,12 +820,10 @@ static int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) ...@@ -844,12 +820,10 @@ static int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid)
return 0; return 0;
} }
int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, u32 acpi_id, int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, u32 acpi_id, int *pcpu)
int *pcpu)
{ {
int cpu; int cpu = topology_hotplug_apic(physid, acpi_id);
cpu = acpi_register_lapic(physid, acpi_id, ACPI_MADT_ENABLED);
if (cpu < 0) { if (cpu < 0) {
pr_info("Unable to map lapic to logical cpu number\n"); pr_info("Unable to map lapic to logical cpu number\n");
return cpu; return cpu;
...@@ -868,15 +842,11 @@ int acpi_unmap_cpu(int cpu) ...@@ -868,15 +842,11 @@ int acpi_unmap_cpu(int cpu)
#ifdef CONFIG_ACPI_NUMA #ifdef CONFIG_ACPI_NUMA
set_apicid_to_node(per_cpu(x86_cpu_to_apicid, cpu), NUMA_NO_NODE); set_apicid_to_node(per_cpu(x86_cpu_to_apicid, cpu), NUMA_NO_NODE);
#endif #endif
topology_hotunplug_apic(cpu);
per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID; return 0;
set_cpu_present(cpu, false);
num_processors--;
return (0);
} }
EXPORT_SYMBOL(acpi_unmap_cpu); EXPORT_SYMBOL(acpi_unmap_cpu);
#endif /* CONFIG_ACPI_HOTPLUG_CPU */ #endif /* CONFIG_ACPI_HOTPLUG_CPU */
int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base) int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment