don't mark framebuffer as free when destroying process

This commit is contained in:
Benji Dial 2025-12-26 14:02:12 -05:00
parent 8e0c51ae5e
commit 0b4fdb5384

View file

@ -262,10 +262,14 @@ void destroy_process(struct process *process) {
if (process->p3_virtual_base[p3i]) {
for (int p2i = 0; p2i < 512; ++p2i)
if (process->p2_virtual_bases[p3i][p2i]) {
for (int p1i = 0; p1i < 512; ++p1i)
mark_physical_memory_free(
process->p1_virtual_bases[p3i][p2i][p1i] & 0x7ffffffffffff000,
4096);
for (int p1i = 0; p1i < 512; ++p1i) {
uint64_t pma =
process->p1_virtual_bases[p3i][p2i][p1i] & 0x7ffffffffffff000;
if (pma >= fb_physical_base &&
pma < fb_physical_base + fb_pitch * fb_height)
continue;
mark_physical_memory_free(pma, 4096);
}
unmap_and_free_kernel_page(process->p1_virtual_bases[p3i][p2i]);
}
unmap_and_free_kernel_page(process->p2_virtual_bases[p3i]);