SMP - BSP waits until the APs finish their booting

- APs configure local timers

- while configuring local APIC timer the CPUs fiddle with the interrupt
  handlers. As the interrupt table is shared the BSP must not run
This commit is contained in:
Tomas Hruby
2010-09-15 14:10:12 +00:00
parent b7aed08e65
commit 9b6d66c787
8 changed files with 66 additions and 12 deletions
+6 -3
View File
@@ -1083,12 +1083,15 @@ PUBLIC int arch_enable_paging(struct proc * caller, const message * m_ptr)
io_apic[i].addr = io_apic[i].vaddr;
}
}
/* TODO APs are still waiting, release them */
#endif
#if CONFIG_SMP
barrier();
i386_paging_enabled = 1;
wait_for_APs_to_finish_booting();
#endif
#endif
#ifdef CONFIG_WATCHDOG
/*
* We make sure that we don't enable the watchdog until paging is turned