hv: coding style: refine page related

1) Fix procedure has more than one exit point.
2) Add some brackets to make logical conjunctions more readable.

Tracked-On: #861
Signed-off-by: Li, Fei1 <fei1.li@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
Li, Fei1 2018-12-19 22:20:08 +08:00 committed by wenlingz
parent 7c2198c422
commit f27aa70fb5
3 changed files with 39 additions and 25 deletions

View File

@ -125,7 +125,7 @@ static void modify_or_del_pde(const uint64_t *pdpte, uint64_t vaddr_start, uint6
panic("invalid op, pde not present"); panic("invalid op, pde not present");
} }
if (pde_large(*pde) != 0UL) { if (pde_large(*pde) != 0UL) {
if (vaddr_next > vaddr_end || !mem_aligned_check(vaddr, PDE_SIZE)) { if ((vaddr_next > vaddr_end) || (!mem_aligned_check(vaddr, PDE_SIZE))) {
split_large_page(pde, IA32E_PD, vaddr, mem_ops); split_large_page(pde, IA32E_PD, vaddr, mem_ops);
} else { } else {
local_modify_or_del_pte(pde, prot_set, prot_clr, type); local_modify_or_del_pte(pde, prot_set, prot_clr, type);
@ -167,8 +167,8 @@ static void modify_or_del_pdpte(const uint64_t *pml4e, uint64_t vaddr_start, uin
panic("invalid op, pdpte not present"); panic("invalid op, pdpte not present");
} }
if (pdpte_large(*pdpte) != 0UL) { if (pdpte_large(*pdpte) != 0UL) {
if (vaddr_next > vaddr_end || if ((vaddr_next > vaddr_end) ||
!mem_aligned_check(vaddr, PDPTE_SIZE)) { (!mem_aligned_check(vaddr, PDPTE_SIZE))) {
split_large_page(pdpte, IA32E_PDPT, vaddr, mem_ops); split_large_page(pdpte, IA32E_PDPT, vaddr, mem_ops);
} else { } else {
local_modify_or_del_pte(pdpte, prot_set, prot_clr, type); local_modify_or_del_pte(pdpte, prot_set, prot_clr, type);
@ -376,34 +376,43 @@ void mmu_add(uint64_t *pml4_page, uint64_t paddr_base, uint64_t vaddr_base, uint
*/ */
uint64_t *lookup_address(uint64_t *pml4_page, uint64_t addr, uint64_t *pg_size, const struct memory_ops *mem_ops) uint64_t *lookup_address(uint64_t *pml4_page, uint64_t addr, uint64_t *pg_size, const struct memory_ops *mem_ops)
{ {
uint64_t *pret = NULL;
bool present = true;
uint64_t *pml4e, *pdpte, *pde, *pte; uint64_t *pml4e, *pdpte, *pde, *pte;
pml4e = pml4e_offset(pml4_page, addr); pml4e = pml4e_offset(pml4_page, addr);
if (mem_ops->pgentry_present(*pml4e) == 0UL) { present = (mem_ops->pgentry_present(*pml4e) != 0UL);
return NULL;
if (present) {
pdpte = pdpte_offset(pml4e, addr);
present = (mem_ops->pgentry_present(*pdpte) != 0UL);
if (present) {
if (pdpte_large(*pdpte) != 0UL) {
*pg_size = PDPTE_SIZE;
pret = pdpte;
}
}
} }
pdpte = pdpte_offset(pml4e, addr); if (present && (pret == NULL)) {
if (mem_ops->pgentry_present(*pdpte) == 0UL) { pde = pde_offset(pdpte, addr);
return NULL; present = (mem_ops->pgentry_present(*pde) != 0UL);
} else if (pdpte_large(*pdpte) != 0UL) { if (present) {
*pg_size = PDPTE_SIZE; if (pde_large(*pde) != 0UL) {
return pdpte; *pg_size = PDE_SIZE;
pret = pde;
}
}
} }
pde = pde_offset(pdpte, addr); if (present && (pret == NULL)) {
if (mem_ops->pgentry_present(*pde) == 0UL) { pte = pte_offset(pde, addr);
return NULL; present = (mem_ops->pgentry_present(*pte) != 0UL);
} else if (pde_large(*pde) != 0UL) { if (present) {
*pg_size = PDE_SIZE; *pg_size = PTE_SIZE;
return pde; pret = pte;
}
} }
pte = pte_offset(pde, addr); return pret;
if (mem_ops->pgentry_present(*pte) == 0UL) {
return NULL;
} else {
*pg_size = PTE_SIZE;
return pte;
}
} }

View File

@ -4,6 +4,9 @@
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#ifndef E820_H
#define E820_H
struct e820_mem_params { struct e820_mem_params {
uint64_t mem_bottom; uint64_t mem_bottom;
uint64_t mem_top; uint64_t mem_top;
@ -43,3 +46,5 @@ const struct e820_mem_params *get_e820_mem_info(void);
#define NUM_E820_ENTRIES 5U #define NUM_E820_ENTRIES 5U
extern const struct e820_entry e820_default_entries[NUM_E820_ENTRIES]; extern const struct e820_entry e820_default_entries[NUM_E820_ENTRIES];
#endif #endif
#endif

View File

@ -20,7 +20,7 @@
#define PT_PAGE_NUM(size) (((size) + PDE_SIZE - 1UL) >> PDE_SHIFT) #define PT_PAGE_NUM(size) (((size) + PDE_SIZE - 1UL) >> PDE_SHIFT)
/* The size of the guest physical address space, covered by the EPT page table of a VM */ /* The size of the guest physical address space, covered by the EPT page table of a VM */
#define EPT_ADDRESS_SPACE(size) ((size != 0UL) ? (size + PLATFORM_LO_MMIO_SIZE) : 0UL) #define EPT_ADDRESS_SPACE(size) (((size) != 0UL) ? ((size) + PLATFORM_LO_MMIO_SIZE) : 0UL)
#define TRUSTY_PML4_PAGE_NUM(size) (1UL) #define TRUSTY_PML4_PAGE_NUM(size) (1UL)
#define TRUSTY_PDPT_PAGE_NUM(size) (1UL) #define TRUSTY_PDPT_PAGE_NUM(size) (1UL)