mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-01 11:55:25 +00:00
hv: pgtable: remove get_default_access_right API
Use default_access_right field to replace get_default_access_right API. Tracked-On: #5830 Signed-off-by: Li Fei1 <fei1.li@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
parent
84c3e76b83
commit
ef98fa69ce
@ -103,11 +103,6 @@ static inline bool large_page_support(enum _page_table_level level, __unused uin
|
||||
return support;
|
||||
}
|
||||
|
||||
static inline uint64_t ppt_get_default_access_right(void)
|
||||
{
|
||||
return (PAGE_PRESENT | PAGE_RW | PAGE_USER);
|
||||
}
|
||||
|
||||
static inline void ppt_clflush_pagewalk(const void* entry __attribute__((unused)))
|
||||
{
|
||||
}
|
||||
@ -121,9 +116,9 @@ static inline void nop_tweak_exe_right(uint64_t *entry __attribute__((unused)))
|
||||
static inline void nop_recover_exe_right(uint64_t *entry __attribute__((unused))) {}
|
||||
|
||||
const struct memory_ops ppt_mem_ops = {
|
||||
.default_access_right = (PAGE_PRESENT | PAGE_RW | PAGE_USER),
|
||||
.pool = &ppt_page_pool,
|
||||
.large_page_support = large_page_support,
|
||||
.get_default_access_right = ppt_get_default_access_right,
|
||||
.pgentry_present = ppt_pgentry_present,
|
||||
.clflush_pagewalk = ppt_clflush_pagewalk,
|
||||
.tweak_exe_right = nop_tweak_exe_right,
|
||||
@ -215,11 +210,6 @@ static inline bool use_large_page(enum _page_table_level level, uint64_t prot)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline uint64_t ept_get_default_access_right(void)
|
||||
{
|
||||
return EPT_RWX;
|
||||
}
|
||||
|
||||
static inline uint64_t ept_pgentry_present(uint64_t pte)
|
||||
{
|
||||
return pte & EPT_RWX;
|
||||
@ -265,7 +255,7 @@ void init_ept_mem_ops(struct memory_ops *mem_ops, uint16_t vm_id)
|
||||
}
|
||||
|
||||
mem_ops->pool = &ept_page_pool[vm_id];
|
||||
mem_ops->get_default_access_right = ept_get_default_access_right;
|
||||
mem_ops->default_access_right = EPT_RWX;
|
||||
mem_ops->pgentry_present = ept_pgentry_present;
|
||||
mem_ops->clflush_pagewalk = ept_clflush_pagewalk;
|
||||
mem_ops->large_page_support = large_page_support;
|
||||
|
@ -70,7 +70,7 @@ static void split_large_page(uint64_t *pte, enum _page_table_level level,
|
||||
paddr += paddrinc;
|
||||
}
|
||||
|
||||
ref_prot = mem_ops->get_default_access_right();
|
||||
ref_prot = mem_ops->default_access_right;
|
||||
set_pgentry(pte, hva2hpa((void *)pbase) | ref_prot, mem_ops);
|
||||
|
||||
/* TODO: flush the TLB */
|
||||
@ -335,7 +335,7 @@ static void add_pde(const uint64_t *pdpte, uint64_t paddr_start, uint64_t vaddr_
|
||||
break; /* done */
|
||||
} else {
|
||||
void *pt_page = alloc_page(mem_ops->pool);
|
||||
construct_pgentry(pde, pt_page, mem_ops->get_default_access_right(), mem_ops);
|
||||
construct_pgentry(pde, pt_page, mem_ops->default_access_right, mem_ops);
|
||||
}
|
||||
}
|
||||
add_pte(pde, paddr, vaddr, vaddr_end, prot, mem_ops);
|
||||
@ -384,7 +384,7 @@ static void add_pdpte(const uint64_t *pml4e, uint64_t paddr_start, uint64_t vadd
|
||||
break; /* done */
|
||||
} else {
|
||||
void *pd_page = alloc_page(mem_ops->pool);
|
||||
construct_pgentry(pdpte, pd_page, mem_ops->get_default_access_right(), mem_ops);
|
||||
construct_pgentry(pdpte, pd_page, mem_ops->default_access_right, mem_ops);
|
||||
}
|
||||
}
|
||||
add_pde(pdpte, paddr, vaddr, vaddr_end, prot, mem_ops);
|
||||
@ -421,7 +421,7 @@ void mmu_add(uint64_t *pml4_page, uint64_t paddr_base, uint64_t vaddr_base, uint
|
||||
pml4e = pml4e_offset(pml4_page, vaddr);
|
||||
if (mem_ops->pgentry_present(*pml4e) == 0UL) {
|
||||
void *pdpt_page = alloc_page(mem_ops->pool);
|
||||
construct_pgentry(pml4e, pdpt_page, mem_ops->get_default_access_right(), mem_ops);
|
||||
construct_pgentry(pml4e, pdpt_page, mem_ops->default_access_right, mem_ops);
|
||||
}
|
||||
add_pdpte(pml4e, paddr, vaddr, vaddr_end, prot, mem_ops);
|
||||
|
||||
|
@ -67,9 +67,9 @@ struct page_pool {
|
||||
};
|
||||
|
||||
struct memory_ops {
|
||||
uint64_t default_access_right;
|
||||
struct page_pool *pool;
|
||||
bool (*large_page_support)(enum _page_table_level level, uint64_t prot);
|
||||
uint64_t (*get_default_access_right)(void);
|
||||
uint64_t (*pgentry_present)(uint64_t pte);
|
||||
void (*clflush_pagewalk)(const void *p);
|
||||
void (*tweak_exe_right)(uint64_t *entry);
|
||||
|
Loading…
Reference in New Issue
Block a user