From 55c5db056ece5a2f53f4e34db563d9403281387b Mon Sep 17 00:00:00 2001 From: ngiddings Date: Sat, 17 Apr 2021 04:56:22 -0500 Subject: [PATCH] Fixed crash in initialize_context() Function tried to dereference a physical address, causing page fault --- src/x86/context.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/x86/context.c b/src/x86/context.c index c7262d0..9be0f1a 100644 --- a/src/x86/context.c +++ b/src/x86/context.c @@ -4,13 +4,12 @@ void *initialize_context(void *task_entry, struct page_stack_t *page_stack) { - physaddr_t stack0 = reserve_page(page_stack); - map_page(page_stack, (void*)0xFF7FF000, stack0, PAGE_RW); - map_page(page_stack, (void*)0xFF7FD000, stack0, PAGE_RW | PAGE_USERMODE); + map_page(page_stack, (void*)0xFF7FF000, reserve_page(page_stack), PAGE_RW); + map_page(page_stack, (void*)0xFF7FD000, reserve_page(page_stack), PAGE_RW | PAGE_USERMODE); unmap_page((void*)0xFF7FE000); unmap_page((void*)0xFF7FC000); uint32_t flags; - uint32_t *stack = (uint32_t*)((void*)stack0 - 20); + uint32_t *stack = (uint32_t*)((void*)0xFF800000 - 20); asm("pushf; " "mov (%%esp), %0; " "popf; "