Arthur Heymans has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/70011 )
Change subject: cpu/x86/mp_init.c: Improve AP entry point ......................................................................
cpu/x86/mp_init.c: Improve AP entry point
Make sure that a pointer exists before dereferencing it.
Change-Id: I1a9833bb9686451224249efe599346f64dc37874 Signed-off-by: Arthur Heymans arthur@aheymans.xyz --- M src/cpu/x86/mp_init.c 1 file changed, 22 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/11/70011/1
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index 758550c..5c89ff3 100644 --- a/src/cpu/x86/mp_init.c +++ b/src/cpu/x86/mp_init.c @@ -182,9 +182,16 @@ enable_lapic(); setup_lapic_interrupts();
- struct device *dev = g_cpu_bus->children; - for (unsigned int i = index; i > 0; i--) - dev = dev->sibling; + struct device *dev; + int i = 0; + for (dev = g_cpu_bus->children; dev; dev = dev->sibling) + if (i++ == index) + break; + + if (!dev) { + printk(BIOS_ERR, "Could not find allocated device for index %u\n", index); + return; + }
set_cpu_info(index, dev);