x86: pcpu init called before idling
[akaros.git] / kern / arch / i686 / smp_entry.S
index 85557aa..6382467 100644 (file)
@@ -85,6 +85,8 @@ here:
        # note the next two lines are using the direct mapping from smp_boot()
        movw    $0, smp_boot_lock - smp_entry + 0x1000  # release lock
        lock decw       smp_semaphore - smp_entry + 0x1000  # show we are done
+       sti                     # so we can get the IPI
+       hlt                     # wait for the IPI to run smp_pcu_init()
        call    smp_idle                # idle loop, will have interrupts turned on
 
        # Below here is just data, stored with the code text