From df8353792451c7650ee0163c40c3303c6952cf5a Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz Date: Fri, 24 Nov 2023 19:21:53 +0100 Subject: [PATCH] acpi,smp: always use APIC ID for CPU identifiers Signed-off-by: Pawel Wieczorkiewicz --- common/acpi.c | 20 +++++++++----------- common/percpu.c | 4 ++-- include/percpu.h | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/common/acpi.c b/common/acpi.c index 5d2a3d55..1cede225 100644 --- a/common/acpi.c +++ b/common/acpi.c @@ -248,16 +248,15 @@ static int process_madt_entries(void) { if (!enabled) break; - cpu_t *cpu = get_cpu(madt_cpu->apic_proc_id) - ?: add_cpu(madt_cpu->apic_proc_id, false, enabled); + cpu_t *cpu = + get_cpu(madt_cpu->apic_id) ?: add_cpu(madt_cpu->apic_id, false, enabled); cpu->flags.enabled = enabled; percpu_t *percpu = cpu->percpu; - percpu->cpu_id = madt_cpu->apic_proc_id; - percpu->apic_id = madt_cpu->apic_id; + percpu->acpi_id = madt_cpu->apic_proc_id; - printk("ACPI: [MADT] APIC Processor ID: %u, APIC ID: %u, Flags: %08x\n", - cpu->id, percpu->apic_id, madt_cpu->flags); + printk("ACPI: [MADT] ACPI Processor ID: %u, APIC ID: %u, Flags: %08x\n", + percpu->acpi_id, percpu->apic_id, madt_cpu->flags); break; } case ACPI_MADT_TYPE_IOAPIC: { @@ -475,15 +474,14 @@ static void madt_parser(ACPI_SUBTABLE_HEADER *entry, void *arg) { if (!enabled) break; - cpu_t *cpu = - get_cpu(lapic->ProcessorId) ?: add_cpu(lapic->ProcessorId, false, enabled); + cpu_t *cpu = get_cpu(lapic->Id) ?: add_cpu(lapic->Id, false, enabled); cpu->flags.enabled = enabled; percpu_t *percpu = cpu->percpu; - percpu->apic_id = lapic->Id; + percpu->acpi_id = lapic->ProcessorId; - printk("ACPI: [MADT] APIC Processor ID: %u, APIC ID: %u, Flags: %08x\n", cpu->id, - percpu->apic_id, lapic->LapicFlags); + printk("ACPI: [MADT] ACPI Processor ID: %u, APIC ID: %u, Flags: %08x\n", + percpu->acpi_id, percpu->apic_id, lapic->LapicFlags); break; } case ACPI_MADT_TYPE_IO_APIC: { diff --git a/common/percpu.c b/common/percpu.c index cad7eeb3..df1f8b74 100644 --- a/common/percpu.c +++ b/common/percpu.c @@ -43,7 +43,7 @@ percpu_t *get_percpu_page(unsigned int cpu) { percpu_t *percpu; list_for_each_entry (percpu, &percpu_frames, list) { - if (percpu->cpu_id == cpu) + if (percpu->apic_id == cpu) return percpu; } @@ -54,7 +54,7 @@ percpu_t *get_percpu_page(unsigned int cpu) { BUG_ON(!percpu); memset(percpu, 0, PAGE_SIZE); - percpu->cpu_id = cpu; + percpu->apic_id = cpu; list_add(&percpu->list, &percpu_frames); return percpu; diff --git a/include/percpu.h b/include/percpu.h index a61ea9e1..f6029ec5 100644 --- a/include/percpu.h +++ b/include/percpu.h @@ -34,7 +34,7 @@ struct percpu { list_head_t list; - unsigned int cpu_id; + uint32_t acpi_id; uint32_t apic_id; uint32_t sapic_uid; uint8_t sapic_id;