diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/x86/cpu.c | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/acpi/cpu_hybrid.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/arch/x86/cpu.c b/src/arch/x86/cpu.c index cb616c96ca..f4c18c2643 100644 --- a/src/arch/x86/cpu.c +++ b/src/arch/x86/cpu.c @@ -302,7 +302,7 @@ void arch_bootstate_coreboot_exit(void) /* cpu_info() looks at address 0 at the base of %gs for a pointer to struct cpu_info */ static struct per_cpu_segment_data segment_data[CONFIG_MAX_CPUS]; -struct cpu_info cpu_infos[CONFIG_MAX_CPUS]; +struct cpu_info cpu_infos[CONFIG_MAX_CPUS] = {0}; enum cb_err set_cpu_info(unsigned int index, struct device *cpu) { diff --git a/src/soc/intel/common/block/acpi/cpu_hybrid.c b/src/soc/intel/common/block/acpi/cpu_hybrid.c index 9a7b768de6..f52b68f7e2 100644 --- a/src/soc/intel/common/block/acpi/cpu_hybrid.c +++ b/src/soc/intel/common/block/acpi/cpu_hybrid.c @@ -54,6 +54,8 @@ static void acpi_set_hybrid_cpu_apicid_order(void *unused) uint32_t i, j = 0; for (i = 0; i < ARRAY_SIZE(cpu_apic_info.apic_ids); i++) { + if (!cpu_infos[i].cpu) + continue; if (cpu_infos[i].cpu->path.apic.core_type == CPU_TYPE_PERF) cpu_apic_info.apic_ids[perf_core_cnt++] = cpu_infos[i].cpu->path.apic.apic_id; |