From 5f9f4e6de4372a75306f38cea3a1d8355dc0894c Mon Sep 17 00:00:00 2001 From: Gliniak Date: Mon, 21 Sep 2020 19:59:06 +0200 Subject: [PATCH] [Kernel/Memory] Reserved pages should be aligned to 64kb page Also removed incorrect code --- src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc index 3b3fa3411..d268f11a2 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc @@ -112,7 +112,8 @@ dword_result_t NtAllocateVirtualMemory(lpdword_t base_addr_ptr, } else { // Adjust size. page_size = 4 * 1024; - if (alloc_type & X_MEM_LARGE_PAGES) { + if (alloc_type & X_MEM_LARGE_PAGES || + (alloc_type & X_MEM_RESERVE && !(alloc_type & X_MEM_COMMIT))) { page_size = 64 * 1024; } } @@ -254,10 +255,6 @@ dword_result_t NtFreeVirtualMemory(lpdword_t base_addr_ptr, } auto heap = kernel_state()->memory()->LookupHeap(base_addr_value); - if (heap->page_size() != 0x1000 && !*region_size_ptr) { - return X_STATUS_INVALID_PARAMETER; - } - if (heap->heap_type() != HeapType::kGuestVirtual) { return X_STATUS_INVALID_PARAMETER; }