diff options
Diffstat (limited to 'Kernel/init.cpp')
-rw-r--r-- | Kernel/init.cpp | 7 |
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..."); { |