mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-22 09:19:03 +00:00
Kernel: Fix SipHash aarch64 boot regression
Moving the DeviceManagement initialization, which is only needed by userland in the first place, to after interrupt and time management initialization (like other things that require randomness) allows the SipHash initialization to access good randomness without problems. Note: There currently is another, unrelated boot problem on aarch64, which is not caused by SipHash as far as we know. This commit therefore only fixes the SipHash regression.
This commit is contained in:
committed by
Jelle Raaijmakers
parent
23d6e9f577
commit
40fb41322e
@@ -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<uintptr_t>();
|
||||
|
||||
Process::initialize();
|
||||
|
||||
Reference in New Issue
Block a user