From patchwork Mon Jun 19 16:57:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 105898 Delivered-To: patch@linaro.org Received: by 10.182.29.35 with SMTP id g3csp942460obh; Mon, 19 Jun 2017 09:59:59 -0700 (PDT) X-Received: by 10.36.161.67 with SMTP id n3mr22978037iti.7.1497891599819; Mon, 19 Jun 2017 09:59:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497891599; cv=none; d=google.com; s=arc-20160816; b=cxrZT7JncliEB5jWsE/S2ajw2wRVpGT3tntd6Ym2oLWc/Y4GrrH9wWTFLzrrqU2mPr D2C56VXSy25FgD+riPlTFUObwyPh6h9sP5MpvPbVDo/MYikXdoAkOgxX/MXIBK0DSK60 DFB4M2jUONpIWBPvUGC6HuY02Kccw0AcCirlhdO/O2HgW118i0KbUt+72CkN5M1+rRC+ iySy77dIMHIAzkasnTBcuYDWCoDmj4wAA3di2yWwt5CVT1OUza1doKT+5jl5udrsQnxx QlOoVYW33kkElFsux3CN11dOZzpglOkm329bHINbx6pYdw+7Q3o/Vb7lpXWGvVrTX/J0 /Glw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-unsubscribe:list-id :precedence:subject:cc:references:in-reply-to:message-id:date:to :from:arc-authentication-results; bh=3ZYF9b8DdUfYv/VJkXY2nvcCpyppYyRKPOrN+lhBp48=; b=yuEAs+u3104Wt2maBfODpCnj/WvgGCkEqdSdPBOzwOzHNiFp2oHgZVJ1+wVD+Fz3Qq wQ0pOL3j41fHRXRlKrL1Ol3q1Eg9v6PkIeFdGIQVagB+dmv3IQZyzy1fq+dnj3pRxyH6 IPuA3T3lciWT7XRkJqN9LZtvWSdMRFMwDiLCi8HqtdR8ADaSl81pCKfJz0nLxhsy9Wyc YHTZSzpJrYJLCfzdZ/H1NYjpy8+Q7iNotxjXwO5mc5yBwdGxd3BrexB6me1uVNFQs3iY hOLGZ2i3llzppzEBUSbceVIzxEfEnzYMMGAa64e7V58l+9jVrr4LaAdtRIcokeQX1Z2Y 9jVQ== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) smtp.mailfrom=xen-devel-bounces@lists.xen.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org. [192.237.175.120]) by mx.google.com with ESMTPS id h92si10034986iod.181.2017.06.19.09.59.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jun 2017 09:59:59 -0700 (PDT) Received-SPF: neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) client-ip=192.237.175.120; Authentication-Results: mx.google.com; spf=neutral (google.com: 192.237.175.120 is neither permitted nor denied by best guess record for domain of xen-devel-bounces@lists.xen.org) smtp.mailfrom=xen-devel-bounces@lists.xen.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dN00A-0003lr-Oq; Mon, 19 Jun 2017 16:58:10 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dN009-0003js-SD for xen-devel@lists.xen.org; Mon, 19 Jun 2017 16:58:09 +0000 Received: from [85.158.139.211] by server-16.bemta-5.messagelabs.com id FF/43-01752-1A208495; Mon, 19 Jun 2017 16:58:09 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRWlGSWpSXmKPExsVysyfVTXcuk0e kwfPjKhZLPi5mcWD0OLr7N1MAYxRrZl5SfkUCa8apjavYCtZIVTx5/IO5gfGfSBcjF4eQwGZG iVstm5ggnNOMEg9aD7N0MXJysAloStz5/IkJxBYRkJa49vkyI4jNLOAg8ebjPbAaYYEYiQOfr oPVsAioSsx7MBvM5hWwlDh/8BlYvYSAvMSutousIDangJXE9/nXwOJCQDXHn9xim8DIvYCRYR WjenFqUVlqka6hXlJRZnpGSW5iZo6uoYGpXm5qcXFiempOYlKxXnJ+7iZGoH/rGRgYdzA29To fYpTkYFIS5Z313z1SiC8pP6UyI7E4I76oNCe1+BCjDAeHkgTvJkaPSCHBotT01Iq0zBxgoMGk JTh4lER4a34DtfIWFyTmFmemQ6ROMSpKifMqgPQJgCQySvPg2mDBfYlRVkqYl5GBgUGIpyC1K DezBFX+FaM4B6OSMG8XyGU8mXklcNNfAS1mAlrMfMYFZHFJIkJKqoGR3UJdPfKKVo913nS7H6 fufD4dvLdi+x+ts6Ldqx0rj+2yWLbyjeqiSLEKHf5O9T7P/V3fXGcv2XQn5XHavfxrp86yHO1 SfrWnu3iB8S61ZZe9omued2yqinsb/FrxtHi21v8VvH5fp2o3cZmdC1rN9HVTXojd1bx9/3+K Jj4S0HJzT2l5yeesxFKckWioxVxUnAgAWis3AWkCAAA= X-Env-Sender: julien.grall@arm.com X-Msg-Ref: server-8.tower-206.messagelabs.com!1497891485!103980153!1 X-Originating-IP: [217.140.101.70] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 17824 invoked from network); 19 Jun 2017 16:58:05 -0000 Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by server-8.tower-206.messagelabs.com with SMTP; 19 Jun 2017 16:58:05 -0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C3B1F15AD; Mon, 19 Jun 2017 09:58:04 -0700 (PDT) Received: from e108454-lin.cambridge.arm.com (e108454-lin.cambridge.arm.com [10.1.206.53]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1F94D3F41F; Mon, 19 Jun 2017 09:58:03 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xen.org Date: Mon, 19 Jun 2017 17:57:41 +0100 Message-Id: <20170619165753.25049-5-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170619165753.25049-1-julien.grall@arm.com> References: <20170619165753.25049-1-julien.grall@arm.com> Cc: Julien Grall , sstabellini@kernel.org Subject: [Xen-devel] [PATCH v2 04/16] xen/arm: p2m: Redefine mfn_to_page and page_to_mfn to use typesafe X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" The file xen/arch/arm/p2m.c is using typesafe MFN in most of the place. This requires caller to mfn_to_page and page_to_mfn to use _mfn/mfn_x. To avoid extra _mfn/mfn_x, re-define mfn_to_page and page_to_mfn within xen/arch/arm/p2m.c to handle typesafe MFN. Signed-off-by: Julien Grall --- The idea behind redefining locally mfn_to_page and page_to_mfn is splitting the introduction of typesafe MFN in smaller series and between multiple people. We know the file is typesafe ready and if we decide to make the main helper typesafe, we would just need to drop the definition at the top of the file. --- xen/arch/arm/p2m.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 266d1c3bd6..6c1ac70044 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -38,6 +38,12 @@ static unsigned int __read_mostly max_vmid = MAX_VMID_8_BIT; #define P2M_ROOT_PAGES (1<domain_id, addr); printk("P2M @ %p mfn:0x%lx\n", - p2m->root, page_to_mfn(p2m->root)); + p2m->root, mfn_x(page_to_mfn(p2m->root))); dump_pt_walk(page_to_maddr(p2m->root), addr, P2M_ROOT_LEVEL, P2M_ROOT_PAGES); @@ -591,7 +597,7 @@ static int p2m_create_table(struct p2m_domain *p2m, lpae_t *entry) * The access value does not matter because the hardware will ignore * the permission fields for table entry. */ - pte = mfn_to_p2m_entry(_mfn(page_to_mfn(page)), p2m_invalid, + pte = mfn_to_p2m_entry(page_to_mfn(page), p2m_invalid, p2m->default_access); p2m_write_pte(entry, pte, p2m->clean_pte); @@ -650,9 +656,9 @@ static void p2m_put_l3_page(const lpae_t pte) */ if ( p2m_is_foreign(pte.p2m.type) ) { - unsigned long mfn = pte.p2m.base; + mfn_t mfn = _mfn(pte.p2m.base); - ASSERT(mfn_valid(_mfn(mfn))); + ASSERT(mfn_valid(mfn)); put_page(mfn_to_page(mfn)); } } @@ -702,7 +708,7 @@ static void p2m_free_entry(struct p2m_domain *p2m, mfn = _mfn(entry.p2m.base); ASSERT(mfn_valid(mfn)); - pg = mfn_to_page(mfn_x(mfn)); + pg = mfn_to_page(mfn); page_list_del(pg, &p2m->pages); free_domheap_page(pg); @@ -780,7 +786,7 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, lpae_t *entry, unmap_domain_page(table); - pte = mfn_to_p2m_entry(_mfn(page_to_mfn(page)), p2m_invalid, + pte = mfn_to_p2m_entry(page_to_mfn(page), p2m_invalid, p2m->default_access); /* @@ -1443,7 +1449,7 @@ struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va, if ( !mfn_valid(maddr_to_mfn(maddr)) ) goto err; - page = mfn_to_page(mfn_x(maddr_to_mfn(maddr))); + page = mfn_to_page(maddr_to_mfn(maddr)); ASSERT(page); if ( unlikely(!get_page(page, d)) )