hv: remove config_page_table_attr

Before we set the page table, we should know the attribute. So
move configure the page table attribute outside of modify_paging.

Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Li, Fei1
2018-06-21 10:08:38 +08:00
committed by lijinxia
parent c5c338aecc
commit 2e535855ce
8 changed files with 45 additions and 121 deletions

View File

@@ -419,23 +419,21 @@ int64_t _set_vm_memmap(struct vm *vm, struct vm *target_vm,
if (memmap->type != MAP_UNMAP) {
prot = (memmap->prot != 0) ? memmap->prot : memmap->prot_2;
if ((prot & MEM_ACCESS_READ) != 0U)
attr |= MMU_MEM_ATTR_READ;
attr |= IA32E_EPT_R_BIT;
if ((prot & MEM_ACCESS_WRITE) != 0U)
attr |= MMU_MEM_ATTR_WRITE;
attr |= IA32E_EPT_W_BIT;
if ((prot & MEM_ACCESS_EXEC) != 0U)
attr |= MMU_MEM_ATTR_EXECUTE;
attr |= IA32E_EPT_X_BIT;
if ((prot & MEM_TYPE_WB) != 0U)
attr |= MMU_MEM_ATTR_WB_CACHE;
attr |= IA32E_EPT_WB;
else if ((prot & MEM_TYPE_WT) != 0U)
attr |= MMU_MEM_ATTR_WT_CACHE;
else if ((prot & MEM_TYPE_UC) != 0U)
attr |= MMU_MEM_ATTR_UNCACHED;
attr |= IA32E_EPT_WT;
else if ((prot & MEM_TYPE_WC) != 0U)
attr |= MMU_MEM_ATTR_WC;
attr |= IA32E_EPT_WC;
else if ((prot & MEM_TYPE_WP) != 0U)
attr |= MMU_MEM_ATTR_WP;
attr |= IA32E_EPT_WP;
else
attr |= MMU_MEM_ATTR_UNCACHED;
attr |= IA32E_EPT_UNCACHED;
}
/* create gpa to hpa EPT mapping */