diff --git a/Kernel/Arch/init.cpp b/Kernel/Arch/init.cpp index c1efed6860..8f3bcd12e0 100644 --- a/Kernel/Arch/init.cpp +++ b/Kernel/Arch/init.cpp @@ -262,12 +262,6 @@ extern "C" [[noreturn]] UNMAP_AFTER_INIT void init([[maybe_unused]] BootInfo con } dmesgln("Starting SerenityOS..."); - DeviceManagement::initialize(); - SysFSComponentRegistry::initialize(); - DeviceManagement::the().attach_null_device(*NullDevice::must_initialize()); - DeviceManagement::the().attach_console_device(*ConsoleDevice::must_create()); - DeviceManagement::the().attach_device_control_device(*DeviceControlDevice::must_create()); - MM.unmap_prekernel(); #if ARCH(X86_64) @@ -287,6 +281,12 @@ extern "C" [[noreturn]] UNMAP_AFTER_INIT void init([[maybe_unused]] BootInfo con // Initialize TimeManagement before using randomness! TimeManagement::initialize(0); + DeviceManagement::initialize(); + SysFSComponentRegistry::initialize(); + DeviceManagement::the().attach_null_device(*NullDevice::must_initialize()); + DeviceManagement::the().attach_console_device(*ConsoleDevice::must_create()); + DeviceManagement::the().attach_device_control_device(*DeviceControlDevice::must_create()); + __stack_chk_guard = get_fast_random(); Process::initialize();