diff --git a/sys/arch/arm/arm32/arm32_machdep.c b/sys/arch/arm/arm32/arm32_machdep.c index fe32893..6ccbaf0 100644 --- a/sys/arch/arm/arm32/arm32_machdep.c +++ b/sys/arch/arm/arm32/arm32_machdep.c @@ -704,7 +704,7 @@ mm_md_physacc(paddr_t pa, vm_prot_t prot) vaddr_t cpu_uarea_alloc_idlelwp(struct cpu_info *ci) { - const vaddr_t va = idlestack.pv_va + ci->ci_cpuid * USPACE; + const vaddr_t va = idlestack.pv_va + cpu_index(ci) * USPACE; // printf("%s: %s: va=%lx\n", __func__, ci->ci_data.cpu_name, va); return va; } diff --git a/sys/arch/arm/arm32/cpu.c b/sys/arch/arm/arm32/cpu.c index 5e90c87..b9559f4 100644 --- a/sys/arch/arm/arm32/cpu.c +++ b/sys/arch/arm/arm32/cpu.c @@ -98,7 +98,7 @@ cpu_attach(device_t dv, cpuid_t id) /* Get the CPU ID from coprocessor 15 */ - ci->ci_cpuid = unit; + ci->ci_cpuid = id; ci->ci_arm_cpuid = cpu_idnum(); ci->ci_arm_cputype = ci->ci_arm_cpuid & CPU_ID_CPU_MASK; ci->ci_arm_cpurev = ci->ci_arm_cpuid & CPU_ID_REVISION_MASK; @@ -110,7 +110,7 @@ cpu_attach(device_t dv, cpuid_t id) KASSERT(cpu_info[unit] == NULL); ci = kmem_zalloc(sizeof(*ci), KM_SLEEP); ci->ci_cpl = IPL_HIGH; - ci->ci_cpuid = unit; + ci->ci_cpuid = id; ci->ci_mpidr = armreg_mpidr_read(); if (ci->ci_mpidr & MPIDR_MT) { ci->ci_smt_id = ci->ci_mpidr & MPIDR_AFF0;