From e279d90d4de18a0333fc7650710b0dba7e2fcd7f Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Fri, 23 Jul 2021 10:34:38 -0600 Subject: [PATCH] arch/x86,cpu/x86/mp_init: Switch cpu_info index type to size_t The alignment for `struct cpu_info` is wrong on x86_64. c_start.S uses the `push` instruction when setting up the cpu_info struct. This instruction will push 8 bytes but `unsigned int` is 4 bytes. By making it a `size_t` we get the correct size for both x86_32 and x86_64. BUG=b:179699789 TEST=Boot guybrush to the OS Suggested-by: Julius Werner Signed-off-by: Raul E Rangel Change-Id: I8ef311aaa8333ccf8a5b3f1f0e852bb26777671c Reviewed-on: https://review.coreboot.org/c/coreboot/+/56573 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner --- src/arch/x86/include/arch/cpu.h | 2 +- src/cpu/x86/mp_init.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h index 3fd4c1b2ea..42201e282e 100644 --- a/src/arch/x86/include/arch/cpu.h +++ b/src/arch/x86/include/arch/cpu.h @@ -225,7 +225,7 @@ struct thread; struct cpu_info { struct device *cpu; - unsigned int index; + size_t index; #if CONFIG(COOP_MULTITASKING) struct thread *thread; #endif diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index cd6d8ca63d..a3a6becad7 100644 --- a/src/cpu/x86/mp_init.c +++ b/src/cpu/x86/mp_init.c @@ -569,7 +569,7 @@ static void init_bsp(struct bus *cpu_bus) info->cpu->name = processor_name; if (info->index != 0) - printk(BIOS_CRIT, "BSP index(%d) != 0!\n", info->index); + printk(BIOS_CRIT, "BSP index(%zd) != 0!\n", info->index); /* Track BSP in cpu_map structures. */ cpu_add_map_entry(info->index);