From b450065984b1588966694579230dc40c802212e7 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Fri, 12 Apr 2024 14:03:29 +0200 Subject: Kernel/MMU: Dellocate pagedirectory when process exits. --- kernel/sched/scheduler.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'kernel/sched') diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c index 52e4848..45969b0 100644 --- a/kernel/sched/scheduler.c +++ b/kernel/sched/scheduler.c @@ -191,9 +191,6 @@ void free_process(process_t *p) { mmu_remove_virtual_physical_address_mapping(m->u_address, m->length); } - // NOTE: Kernel stuff begins at 0x90000000 - mmu_free_address_range((void *)0x1000, 0x90000000, p->cr3); - list_free(&p->read_list); list_free(&p->write_list); list_free(&p->disconnect_list); @@ -202,9 +199,12 @@ void free_process(process_t *p) { list_free(&p->event_queue); list_free(&p->file_descriptors); kfree(p->tcb); + + mmu_free_pagedirectory(p->cr3); } void exit_process(process_t *p, int status) { + disable_interrupts(); assert(p->pid != 1); if (p->parent) { p->parent->halts[WAIT_CHILD_HALT] = 0; -- cgit v1.2.3