From patchwork Tue Jun 13 16:13:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 105395 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp486448qgd; Tue, 13 Jun 2017 09:15:30 -0700 (PDT) X-Received: by 10.202.65.194 with SMTP id o185mr512383oia.10.1497370530160; Tue, 13 Jun 2017 09:15:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497370530; cv=none; d=google.com; s=arc-20160816; b=GM73n+EaMNT4xBH+KteiDgUaHecuTN/MMGG0RtK2LkDLrd8ehAmdItKcEV9Utt1vh4 GX9oVCDlD7H85n3TvhaI+vdb0sHA9Pb2bCzLyF8JpH6KFPEyD830lnA4k3EpBaOfSS67 gGf5/HPxmEoXux1dvayv/MPfs//UEGavhNZg7ONE5ycwxb47ztmrpTDlbRf1BZLxqFgG BNfq5jROOWMB4ssPISdU34CGiGXG0faHB3K+MDw4eSB/LD+UMjC8BZbLRxqGaPwj6Rf1 fRUIwVMiLRs1VBX2fTAis6lJl9/2Mk/dMCmjxDosKusr2WmjUR24bL9BIcgz46wosl5m NFBg== 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=DUiy0QdAtuUVwSMHIZfFbTvu6xzn25wyPUdeGERGZ6E=; b=dUt28gy9DA72ANb4N/3oQ9ABElTWA8Xuv8KZNbXa3w3pSZVR4AqrSPzO0F2womLCYK F9UvXQBGYzWN8kpz/zU39pGIzvf1Z9C8TnClTAnwxTN7MM5WvnLoWJ+YoOH2rRrzqgzJ qR8cox1iTn0s1H9DH4q+MID1Q+M3yPJ22MPO+joz2oVt2Gt2IFkNSOSG8nE0sp7FgUIw +BpVfWWMzNYzHyPYDNKKi1FnBrY4zhB3PUDeC9iqjR7vHdE8kFN84guFELC6+5cUF3Xp ZHaeD+IIkVIS0yFBjL8am7H9CUZjYvZ4ZmMMQC/R/UksP+4/s8jokC5Xuv8CrK/ZaPGl IREw== 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 o30si338251oto.180.2017.06.13.09.15.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Jun 2017 09:15:30 -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 1dKoS4-0008Vd-94; Tue, 13 Jun 2017 16:13:56 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dKoS2-0008RM-Oz for xen-devel@lists.xen.org; Tue, 13 Jun 2017 16:13:54 +0000 Received: from [85.158.143.35] by server-11.bemta-6.messagelabs.com id 1D/33-03587-24F00495; Tue, 13 Jun 2017 16:13:54 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRWlGSWpSXmKPExsVysyfVTdeR3yH S4Nx2foslHxezODB6HN39mymAMYo1My8pvyKBNePpsmVMBZ3KFbf6JzI2MN6X6WLk4hAS2Mwo 0XS/jRXCOc0osXvSRfYuRk4ONgFNiTufPzGB2CIC0hLXPl9mBLGZBSIkmhbsBYpzcAgLOEnsX i0JEmYRUJV4fXoqK4jNK2AlcXldO1irhIC8xK62i2BxTqD4pedNYGOEBCwlmnevZ5rAyL2AkW EVo0ZxalFZapGukaVeUlFmekZJbmJmjq6hgZlebmpxcWJ6ak5iUrFecn7uJkagfxmAYAfjgUW BhxglOZiURHm3XLGJFOJLyk+pzEgszogvKs1JLT7EKMPBoSTBu4PXIVJIsCg1PbUiLTMHGGgw aQkOHiUR3vssQGne4oLE3OLMdIjUKUZFKXHeCXxACQGQREZpHlwbLLgvMcpKCfMyAh0ixFOQW pSbWYIq/4pRnINRSZi3hQdoCk9mXgnc9FdAi5mAFl8HuZm3uCQRISXVwHg8Z/Z37xrps4LnXq W4vjyiusHJv/F2Vu+r76LsLpPLv51fxnFMrOVh+LyDq+/tnhjw85hkSr+ZZMSsJ5t6LhR/MVx vyL62zCvJdon/nnmXBCwenbVdrFkUKX9N6MlFhrZn2T+VY79tXmVcnHR4kZnMupdbHfR38YZo leSFrLXYp+jou/ntvBlKLMUZiYZazEXFiQATYV4EaQIAAA== X-Env-Sender: julien.grall@arm.com X-Msg-Ref: server-5.tower-21.messagelabs.com!1497370432!65704477!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 55284 invoked from network); 13 Jun 2017 16:13:52 -0000 Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by server-5.tower-21.messagelabs.com with SMTP; 13 Jun 2017 16:13:52 -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 5F2B715B2; Tue, 13 Jun 2017 09:13:49 -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 97F563F557; Tue, 13 Jun 2017 09:13:48 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xen.org Date: Tue, 13 Jun 2017 17:13:16 +0100 Message-Id: <20170613161323.25196-18-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170613161323.25196-1-julien.grall@arm.com> References: <20170613161323.25196-1-julien.grall@arm.com> Cc: Julien Grall , sstabellini@kernel.org, punit.agrawal@arm.com Subject: [Xen-devel] [PATCH 17/24] xen/arm: mm: Use typesafe MFN in set_fixmap 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" Signed-off-by: Julien Grall Reviewed-by: Stefano Stabellini --- xen/arch/arm/acpi/lib.c | 4 ++-- xen/arch/arm/kernel.c | 4 +--- xen/arch/arm/mm.c | 4 ++-- xen/arch/arm/platforms/vexpress.c | 2 +- xen/drivers/video/arm_hdlcd.c | 2 +- xen/include/asm-arm/mm.h | 2 +- 6 files changed, 8 insertions(+), 10 deletions(-) diff --git a/xen/arch/arm/acpi/lib.c b/xen/arch/arm/acpi/lib.c index 9bd769cff6..70131b0736 100644 --- a/xen/arch/arm/acpi/lib.c +++ b/xen/arch/arm/acpi/lib.c @@ -31,7 +31,7 @@ char *__acpi_map_table(paddr_t phys, unsigned long size) offset = phys & (PAGE_SIZE - 1); mapped_size = PAGE_SIZE - offset; - set_fixmap(FIXMAP_ACPI_BEGIN, phys >> PAGE_SHIFT, PAGE_HYPERVISOR); + set_fixmap(FIXMAP_ACPI_BEGIN, maddr_to_mfn(phys), PAGE_HYPERVISOR); base = FIXMAP_ADDR(FIXMAP_ACPI_BEGIN); /* Most cases can be covered by the below. */ @@ -41,7 +41,7 @@ char *__acpi_map_table(paddr_t phys, unsigned long size) if ( ++idx > FIXMAP_ACPI_END ) return NULL; /* cannot handle this */ phys += PAGE_SIZE; - set_fixmap(idx, phys >> PAGE_SHIFT, PAGE_HYPERVISOR); + set_fixmap(idx, maddr_to_mfn(phys), PAGE_HYPERVISOR); mapped_size += PAGE_SIZE; } diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c index 1b32d55284..7403ec0c0e 100644 --- a/xen/arch/arm/kernel.c +++ b/xen/arch/arm/kernel.c @@ -49,14 +49,12 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len) void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC); while (len) { - paddr_t p; unsigned long l, s; - p = paddr >> PAGE_SHIFT; s = paddr & (PAGE_SIZE-1); l = min(PAGE_SIZE - s, len); - set_fixmap(FIXMAP_MISC, p, BUFFERABLE); + set_fixmap(FIXMAP_MISC, maddr_to_mfn(paddr), BUFFERABLE); memcpy(dst, src + s, l); clean_dcache_va_range(dst, l); diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index fb01f01879..8573192e3a 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -323,9 +323,9 @@ static inline lpae_t mfn_to_xen_entry(mfn_t mfn, unsigned attr) } /* Map a 4k page in a fixmap entry */ -void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes) +void set_fixmap(unsigned map, mfn_t mfn, unsigned attributes) { - lpae_t pte = mfn_to_xen_entry(_mfn(mfn), attributes); + lpae_t pte = mfn_to_xen_entry(mfn, attributes); pte.pt.table = 1; /* 4k mappings always have this bit set */ pte.pt.xn = 1; write_pte(xen_fixmap + third_table_offset(FIXMAP_ADDR(map)), pte); diff --git a/xen/arch/arm/platforms/vexpress.c b/xen/arch/arm/platforms/vexpress.c index 8e6a4eaa32..a26ac324ba 100644 --- a/xen/arch/arm/platforms/vexpress.c +++ b/xen/arch/arm/platforms/vexpress.c @@ -65,7 +65,7 @@ int vexpress_syscfg(int write, int function, int device, uint32_t *data) uint32_t *syscfg = (uint32_t *) FIXMAP_ADDR(FIXMAP_MISC); int ret = -1; - set_fixmap(FIXMAP_MISC, V2M_SYS_MMIO_BASE >> PAGE_SHIFT, DEV_SHARED); + set_fixmap(FIXMAP_MISC, maddr_to_mfn(V2M_SYS_MMIO_BASE), DEV_SHARED); if ( syscfg[V2M_SYS_CFGCTRL/4] & V2M_SYS_CFG_START ) goto out; diff --git a/xen/drivers/video/arm_hdlcd.c b/xen/drivers/video/arm_hdlcd.c index 8241cae117..3915f731f5 100644 --- a/xen/drivers/video/arm_hdlcd.c +++ b/xen/drivers/video/arm_hdlcd.c @@ -227,7 +227,7 @@ void __init video_init(void) /* uses FIXMAP_MISC */ set_pixclock(videomode->pixclock); - set_fixmap(FIXMAP_MISC, hdlcd_start >> PAGE_SHIFT, DEV_SHARED); + set_fixmap(FIXMAP_MISC, maddr_to_mfn(hdlcd_start), DEV_SHARED); HDLCD[HDLCD_COMMAND] = 0; HDLCD[HDLCD_LINELENGTH] = videomode->xres * bytes_per_pixel; diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h index 3dab6dc9a1..b2e7ea7761 100644 --- a/xen/include/asm-arm/mm.h +++ b/xen/include/asm-arm/mm.h @@ -176,7 +176,7 @@ extern void setup_xenheap_mappings(unsigned long base_mfn, unsigned long nr_mfns /* Map a frame table to cover physical addresses ps through pe */ extern void setup_frametable_mappings(paddr_t ps, paddr_t pe); /* Map a 4k page in a fixmap entry */ -extern void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes); +extern void set_fixmap(unsigned map, mfn_t mfn, unsigned attributes); /* Remove a mapping from a fixmap entry */ extern void clear_fixmap(unsigned map); /* map a physical range in virtual memory */