From 14415fae9ffe5a75205cfcf212d4643c0fff0e54 Mon Sep 17 00:00:00 2001 From: Nathan Giddings Date: Fri, 3 Mar 2023 04:54:54 -0600 Subject: [PATCH] `set_pte_type` now correctly sets flags Previously it erroneously set all flags regardless to `flags` argument --- src/x86/paging.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/x86/paging.c b/src/x86/paging.c index 630d89e..8fcc632 100644 --- a/src/x86/paging.c +++ b/src/x86/paging.c @@ -133,9 +133,9 @@ int set_pte_type(void *page, int level, int flags) struct page_table_entry_t *entry = get_pte_pointer(page, level); if(entry != NULL) { - entry->present = PAGE_PRESENT ? 1 : 0; - entry->rw = PAGE_RW ? 1 : 0; - entry->usermode = PAGE_USERMODE ? 1 : 0; + entry->present = (flags & PAGE_PRESENT) ? 1 : 0; + entry->rw = (flags & PAGE_RW) ? 1 : 0; + entry->usermode = (flags & PAGE_USERMODE) ? 1 : 0; return 0; } else