{arch,cpu}/x86, drivers/intel: Restore cpu_index error handling
Previously cpu_index() always succeeded, but since commit095c931
(src/arch/x86: Use core apic id to get cpu_index()) it is now possible for it to indicate an error by returning -1. This commit adds error handling for all calls to cpu_index(), and restores several checks that were removed in commit7c712bb
(Fix code that would trip -Wtype-limits) but are now needed. Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Change-Id: I5436eed4cb5675f916924eb9670db04592a8b927 Reviewed-on: https://review.coreboot.org/c/coreboot/+/32795 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
committed by
Stefan Reinauer
parent
2e8188aa13
commit
bc674765a9
@ -870,13 +870,20 @@ static int run_ap_work(struct mp_callback *val, long expire_us)
|
||||
int i;
|
||||
int cpus_accepted;
|
||||
struct stopwatch sw;
|
||||
int cur_cpu = cpu_index();
|
||||
int cur_cpu;
|
||||
|
||||
if (!CONFIG(PARALLEL_MP_AP_WORK)) {
|
||||
printk(BIOS_ERR, "APs already parked. PARALLEL_MP_AP_WORK not selected.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
cur_cpu = cpu_index();
|
||||
|
||||
if (cur_cpu < 0) {
|
||||
printk(BIOS_ERR, "Invalid CPU index.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Signal to all the APs to run the func. */
|
||||
for (i = 0; i < ARRAY_SIZE(ap_callbacks); i++) {
|
||||
if (cur_cpu == i)
|
||||
@ -918,6 +925,12 @@ static void ap_wait_for_instruction(void)
|
||||
return;
|
||||
|
||||
cur_cpu = cpu_index();
|
||||
|
||||
if (cur_cpu < 0) {
|
||||
printk(BIOS_ERR, "Invalid CPU index.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
per_cpu_slot = &ap_callbacks[cur_cpu];
|
||||
|
||||
while (1) {
|
||||
|
Reference in New Issue
Block a user