summaryrefslogtreecommitdiff
path: root/Kernel/init.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/init.cpp')
-rw-r--r--Kernel/init.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/Kernel/init.cpp b/Kernel/init.cpp
index 700e166752..fee2ec1af9 100644
--- a/Kernel/init.cpp
+++ b/Kernel/init.cpp
@@ -216,6 +216,13 @@ extern "C" [[noreturn]] UNMAP_AFTER_INIT void init(BootInfo const& boot_info)
Scheduler::initialize();
+ if (APIC::initialized() && APIC::the().enabled_processor_count() > 1) {
+ // We must set up the AP boot environment before switching to a kernel process,
+ // as pages below address USER_RANGE_BASE are only accesible through the kernel
+ // page directory.
+ APIC::the().setup_ap_boot_environment();
+ }
+
dmesgln("Starting SerenityOS...");
{