summaryrefslogtreecommitdiff
path: root/kernel/src/scheduler/ap_startup.c
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-22 18:36:16 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-22 18:36:16 +0100
commit53069ae43ea997d51d2b985a26fffdb86a59b023 (patch)
tree173e9a3c452e2116db9a82f06de3761b97d6605b /kernel/src/scheduler/ap_startup.c
parent57e6722453c27d35a3b02309ce21263d225a23e3 (diff)
spinlocks in printf
Diffstat (limited to 'kernel/src/scheduler/ap_startup.c')
-rw-r--r--kernel/src/scheduler/ap_startup.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/src/scheduler/ap_startup.c b/kernel/src/scheduler/ap_startup.c
index 0d37a6c..4e70f17 100644
--- a/kernel/src/scheduler/ap_startup.c
+++ b/kernel/src/scheduler/ap_startup.c
@@ -10,9 +10,13 @@ void ap_startup(void) {
load_gdt(&gdt_pointer);
load_pt_lvl4(page_table_lvl4);
- lock(cnt_lock);
+ while (bspdone) {
+ __asm__ __volatile__ ("pause;");
+ }
+
printf("curr_cpu_apic_id: 0x%x\n", curr_cpu_apic_id());
- cnt++;
+ lock(cnt_lock);
+ ap_cnt++;
unlock(cnt_lock);
for(;;) {