Index: mp_machdep.c =================================================================== --- mp_machdep.c (revision 221608) +++ mp_machdep.c (working copy) @@ -555,6 +550,10 @@ while (!aps_ready) ia32_pause(); + /* Initialize curthread. */ + KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread")); + PCPU_SET(curthread, PCPU_GET(idlethread)); + /* BSP may have changed PTD while we were waiting */ invltlb(); for (addr = 0; addr < NKPT * NBPDR - 1; addr += PAGE_SIZE) @@ -586,10 +585,6 @@ } #endif - /* Initialize curthread. */ - KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread")); - PCPU_SET(curthread, PCPU_GET(idlethread)); - mtx_lock_spin(&ap_boot_mtx); #if 0