From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH RFC 1/9] xen: arm: rename p2m->first_level to p2m->root. Date: Wed, 30 Jul 2014 14:47:09 +0100 Message-ID: <3ef2b68c511f3e31de409b76757b95c78b99d750.1406728037.git.ian.campbell@citrix.com> References: <1406727891.10402.24.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1406727891.10402.24.camel@kazak.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: julien.grall@linaro.org, Ian Campbell , vijay.kilari@gmail.com, stefano.stabellini@eu.citrix.com, Vijaya Kumar K , Ian Campbell , tim@xen.org List-Id: xen-devel@lists.xenproject.org From: Ian Campbell This was previously part of Vigaya's "xen/arm: Add 4-level page table for stage 2 translation" but is split out here to make that patch easier to read. I also switched from ->root_level to just ->root. Signed-off-by: Ian Campbell Cc: Vijaya Kumar K --- xen/arch/arm/p2m.c | 24 ++++++++++++------------ xen/drivers/passthrough/arm/smmu.c | 2 +- xen/include/asm-arm/p2m.h | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 143199b..61958ba 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -12,8 +12,8 @@ #include /* First level P2M is 2 consecutive pages */ -#define P2M_FIRST_ORDER 1 -#define P2M_FIRST_ENTRIES (LPAE_ENTRIES<first_level, page_to_mfn(p2m->first_level)); + p2m->root, page_to_mfn(p2m->root)); - first = __map_domain_page(p2m->first_level); + first = __map_domain_page(p2m->root); dump_pt_walk(first, addr); unmap_domain_page(first); } @@ -137,10 +137,10 @@ static lpae_t *p2m_map_first(struct p2m_domain *p2m, paddr_t addr) { struct page_info *page; - if ( first_linear_offset(addr) >= P2M_FIRST_ENTRIES ) + if ( first_linear_offset(addr) >= P2M_ROOT_ENTRIES ) return NULL; - page = p2m->first_level + p2m_first_level_index(addr); + page = p2m->root + p2m_first_level_index(addr); return __map_domain_page(page); } @@ -879,7 +879,7 @@ int p2m_alloc_table(struct domain *d) struct p2m_domain *p2m = &d->arch.p2m; struct page_info *page; - page = alloc_domheap_pages(NULL, P2M_FIRST_ORDER, 0); + page = alloc_domheap_pages(NULL, P2M_ROOT_ORDER, 0); if ( page == NULL ) return -ENOMEM; @@ -889,9 +889,9 @@ int p2m_alloc_table(struct domain *d) clear_and_clean_page(page); clear_and_clean_page(page + 1); - p2m->first_level = page; + p2m->root = page; - d->arch.vttbr = page_to_maddr(p2m->first_level) + d->arch.vttbr = page_to_maddr(p2m->root) | ((uint64_t)p2m->vmid&0xff)<<48; /* Make sure that all TLBs corresponding to the new VMID are flushed @@ -968,9 +968,9 @@ void p2m_teardown(struct domain *d) while ( (pg = page_list_remove_head(&p2m->pages)) ) free_domheap_page(pg); - free_domheap_pages(p2m->first_level, P2M_FIRST_ORDER); + free_domheap_pages(p2m->root, P2M_ROOT_ORDER); - p2m->first_level = NULL; + p2m->root = NULL; p2m_free_vmid(d); @@ -994,7 +994,7 @@ int p2m_init(struct domain *d) d->arch.vttbr = 0; - p2m->first_level = NULL; + p2m->root = NULL; p2m->max_mapped_gfn = 0; p2m->lowest_mapped_gfn = ULONG_MAX; diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c index f4eb2a2..42bde75 100644 --- a/xen/drivers/passthrough/arm/smmu.c +++ b/xen/drivers/passthrough/arm/smmu.c @@ -937,7 +937,7 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain_cfg *cfg) paddr_t p2maddr; ASSERT(cfg->domain != NULL); - p2maddr = page_to_maddr(cfg->domain->arch.p2m.first_level); + p2maddr = page_to_maddr(cfg->domain->arch.p2m.root); gr1_base = SMMU_GR1(smmu); cb_base = SMMU_CB_BASE(smmu) + SMMU_CB(smmu, cfg->cbndx); diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h index 06c93a0..cfd0c52 100644 --- a/xen/include/asm-arm/p2m.h +++ b/xen/include/asm-arm/p2m.h @@ -14,7 +14,7 @@ struct p2m_domain { struct page_list_head pages; /* Root of p2m page tables, 2 contiguous pages */ - struct page_info *first_level; + struct page_info *root; /* Current VMID in use */ uint8_t vmid; -- 1.7.10.4