1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 18:05:08 +00:00

Kernel: Make MemoryManager::protect_ksyms_after_init UNMAP_AFTER_INIT

The function to protect ksyms after initialization, is only used during
boot of the system, so it can be UNMAP_AFTER_INIT as well.

This requires we switch the order of the init sequence, so we now call
`MM.protect_ksyms_after_init()` before `MM.unmap_text_after_init()`.
This commit is contained in:
Brian Gianforcaro 2021-12-24 05:21:08 -08:00 committed by Brian Gianforcaro
parent e88e4967d1
commit 1c950773fb
2 changed files with 4 additions and 4 deletions

View file

@ -149,7 +149,7 @@ void MemoryManager::unmap_text_after_init()
dmesgln("Unmapped {} KiB of kernel text after init! :^)", (end - start) / KiB);
}
void MemoryManager::protect_ksyms_after_init()
UNMAP_AFTER_INIT void MemoryManager::protect_ksyms_after_init()
{
SpinlockLocker mm_lock(s_mm_lock);
SpinlockLocker page_lock(kernel_page_directory().get_lock());

View file

@ -341,12 +341,12 @@ void init_stage2(void*)
// NOTE: Everything marked READONLY_AFTER_INIT becomes non-writable after this point.
MM.protect_readonly_after_init_memory();
// NOTE: Everything marked UNMAP_AFTER_INIT becomes inaccessible after this point.
MM.unmap_text_after_init();
// NOTE: Everything in the .ksyms section becomes read-only after this point.
MM.protect_ksyms_after_init();
// NOTE: Everything marked UNMAP_AFTER_INIT becomes inaccessible after this point.
MM.unmap_text_after_init();
// FIXME: It would be nicer to set the mode from userspace.
// FIXME: It would be smarter to not hardcode that the first tty is the only graphical one
ConsoleManagement::the().first_tty()->set_graphical(GraphicsManagement::the().framebuffer_devices_exist());