diff --git a/arch/x86/mm/page.c b/arch/x86/mm/page.c index 62dab193..7321a413 100644 --- a/arch/x86/mm/page.c +++ b/arch/x86/mm/page.c @@ -406,7 +406,7 @@ int change_page_permissions(size_t start, size_t end, uint32_t flags) if ((newflags & PG_SVM) && !(newflags & PG_PRESENT) && (flags & (VMA_READ|VMA_WRITE) && !(flags & VMA_NOACCESS))) newflags |= PG_PRESENT; - if ((newflags & PG_SVM) && (newflags & PG_PRESENT) && (flags & VMA_NOACCESS)) + else if ((newflags & PG_SVM) && (newflags & PG_PRESENT) && (flags & VMA_NOACCESS)) newflags &= ~PG_PRESENT; // update flags