Skip to content

Commit d1daed0

Browse files
committed
acpi,smp: always use APIC ID for CPU identifiers
Signed-off-by: Pawel Wieczorkiewicz <[email protected]>
1 parent e79b129 commit d1daed0

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

common/acpi.c

+9-11
Original file line numberDiff line numberDiff line change
@@ -248,16 +248,15 @@ static int process_madt_entries(void) {
248248
if (!enabled)
249249
break;
250250

251-
cpu_t *cpu = get_cpu(madt_cpu->apic_proc_id)
252-
?: add_cpu(madt_cpu->apic_proc_id, false, enabled);
251+
cpu_t *cpu =
252+
get_cpu(madt_cpu->apic_id) ?: add_cpu(madt_cpu->apic_id, false, enabled);
253253
cpu->flags.enabled = enabled;
254254

255255
percpu_t *percpu = cpu->percpu;
256-
percpu->cpu_id = madt_cpu->apic_proc_id;
257-
percpu->apic_id = madt_cpu->apic_id;
256+
percpu->acpi_id = madt_cpu->apic_proc_id;
258257

259-
printk("ACPI: [MADT] APIC Processor ID: %u, APIC ID: %u, Flags: %08x\n",
260-
cpu->id, percpu->apic_id, madt_cpu->flags);
258+
printk("ACPI: [MADT] ACPI Processor ID: %u, APIC ID: %u, Flags: %08x\n",
259+
percpu->acpi_id, percpu->apic_id, madt_cpu->flags);
261260
break;
262261
}
263262
case ACPI_MADT_TYPE_IOAPIC: {
@@ -475,15 +474,14 @@ static void madt_parser(ACPI_SUBTABLE_HEADER *entry, void *arg) {
475474
if (!enabled)
476475
break;
477476

478-
cpu_t *cpu =
479-
get_cpu(lapic->ProcessorId) ?: add_cpu(lapic->ProcessorId, false, enabled);
477+
cpu_t *cpu = get_cpu(lapic->Id) ?: add_cpu(lapic->Id, false, enabled);
480478
cpu->flags.enabled = enabled;
481479

482480
percpu_t *percpu = cpu->percpu;
483-
percpu->apic_id = lapic->Id;
481+
percpu->acpi_id = lapic->ProcessorId;
484482

485-
printk("ACPI: [MADT] APIC Processor ID: %u, APIC ID: %u, Flags: %08x\n", cpu->id,
486-
percpu->apic_id, lapic->LapicFlags);
483+
printk("ACPI: [MADT] ACPI Processor ID: %u, APIC ID: %u, Flags: %08x\n",
484+
percpu->acpi_id, percpu->apic_id, lapic->LapicFlags);
487485
break;
488486
}
489487
case ACPI_MADT_TYPE_IO_APIC: {

common/percpu.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ percpu_t *get_percpu_page(unsigned int cpu) {
4343
percpu_t *percpu;
4444

4545
list_for_each_entry (percpu, &percpu_frames, list) {
46-
if (percpu->cpu_id == cpu)
46+
if (percpu->apic_id == cpu)
4747
return percpu;
4848
}
4949

@@ -54,7 +54,7 @@ percpu_t *get_percpu_page(unsigned int cpu) {
5454
BUG_ON(!percpu);
5555
memset(percpu, 0, PAGE_SIZE);
5656

57-
percpu->cpu_id = cpu;
57+
percpu->apic_id = cpu;
5858

5959
list_add(&percpu->list, &percpu_frames);
6060
return percpu;

include/percpu.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
struct percpu {
3535
list_head_t list;
3636

37-
unsigned int cpu_id;
37+
uint32_t acpi_id;
3838
uint32_t apic_id;
3939
uint32_t sapic_uid;
4040
uint8_t sapic_id;

0 commit comments

Comments
 (0)