diff options
Diffstat (limited to 'i386/i386/mp_desc.c')
-rw-r--r-- | i386/i386/mp_desc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/i386/i386/mp_desc.c b/i386/i386/mp_desc.c index 10caeb19..aad81014 100644 --- a/i386/i386/mp_desc.c +++ b/i386/i386/mp_desc.c @@ -566,6 +566,9 @@ start_other_cpus(void) /*TODO: Copy the routine in a physical page */ memcpy((void*)phystokv(AP_BOOT_ADDR), (void*) &apboot, (uint32_t)&apbootend - (uint32_t)&apboot); + //update BSP machine_slot and apic2kernel + machine_slot[0].apic_id = apic_id; + apic2kernel[apic_id] = 0; //Reserve memory for cpu stack if (!init_alloc_aligned(STACK_SIZE*(ncpu-1), &stack_start)) @@ -592,7 +595,6 @@ start_other_cpus(void) } } - /* Get rid of the temporary direct mapping and flush it out of the TLB. */ for (i = 0 ; i < nb_direct_value; i++){ kernel_page_dir[lin2pdenum_cont(INIT_VM_MIN_KERNEL_ADDRESS) + i] = 0; |