diff --git a/executer/kernel/syscall.c b/executer/kernel/syscall.c index 44c41b5e..2d53244d 100644 --- a/executer/kernel/syscall.c +++ b/executer/kernel/syscall.c @@ -1239,8 +1239,9 @@ static int pager_req_pfn(ihk_os_t os, uintptr_t handle, off_t off, uintptr_t ppf pfn |= PFN_VALID | PFN_PRESENT; /* Check if mapping is write-combined */ - if (pte_flags(*pte) & _PAGE_CACHE_WC) { - pfn |= _PAGE_CACHE_WC; + if ((pte_flags(*pte) & _PAGE_PWT) && + !(pte_flags(*pte) & _PAGE_PCD)) { + pfn |= _PAGE_PWT; } } pte_unmap(pte);